Hello,
after registering at http://forms.analog.com/form_pages/rfcomms/adisimpll.asp?ref=ASC-PR-067 you can download ADIsimPLL Version 3.1 for free. Running the program (with richedit from winetricks) it offers to run a tutorial. In the course of clicking next in this tutorial, at some point some form gets filled with \ nonsense double values. This doesn't happen with native msvcrt.
I have instrumented msvcrt._ecvt() to print out the number. The number printed is the nonsens number in the form. Appended +relay,+msvcrt looks fishy:
0023:Call msvcrt.__RTDynamicCast(006f7a58,00000000,00543030,00544838,00000000) ret=0044019e trace:msvcrt:MSVCRT___RTDynamicCast obj: 0x6f7a58 unknown: 0 src: 0x543030 {vtable=0x521568 name=.?AVYASymbol@@ ()} dst: 0x544838 {vtable=0x521568 name=.?AVLibDouble@@ ()} do_throw: 0) trace:msvcrt:dump_obj_locator 0x524218: sig=00000000 base_offset=00000000 flags=00000000 type=0x544838 {vtable=0x521568 name=.?AVLibDouble@@ ()} hierarchy=0x524208 trace:msvcrt:dump_obj_locator hierarchy: sig=00000000 attr=00000000 len=3 base classes=0x5241f8 trace:msvcrt:dump_obj_locator base class 0x5241e0: num 2 off 0,-1,0 attr 00000000 type 0x544838 {vtable=0x521568 name=.?AVLibDouble@@ ()} trace:msvcrt:dump_obj_locator base class 0x524190: num 1 off 0,-1,0 attr 00000000 type 0x544818 {vtable=0x521568 name=.?AVLibVariable@@ ()} trace:msvcrt:dump_obj_locator base class 0x5234d8: num 0 off 0,-1,0 attr 00000000 type 0x543030 {vtable=0x521568 name=.?AVYASymbol@@ ()} 0023:Ret msvcrt.__RTDynamicCast() retval=006f7a58 ret=0044019e 0023:Call msvcrt._ecvt(00000001,5f40255f,0000000a,00328dd4,00328ddc) ret=0040a952 0023:Call KERNEL32.TlsGetValue(00000000) ret=7ec3e471 0023:Ret KERNEL32.TlsGetValue() retval=001b0678 ret=7ec3e471 trace:msvcrt:_ecvt num 6606512752554031389059083466263841847175093544956949844249843220093860018640324866\ 420498348423671822060046924282328257865959227190774155226910868635648.000000, digits 10 0023:Call ntdll.RtlAllocateHeap(00110000,00000000,00000050) ret=7ec2de07 0023:Ret ntdll.RtlAllocateHeap() retval=006e4550 ret=7ec2de07 0023:Ret msvcrt._ecvt() retval=006e4550 ret=0040a952
I suspect __RTDynamicCast() to cause the error. Having not much C++ understanding, I don't feel like writing a sensible testcase. Can anybody perhaps have a look?
Thanks