[Bug 8170] __unDNameEx gives up on nested template expression (debug symbols)

Wine Bugs wine-bugs at winehq.org
Fri Apr 27 04:03:41 CDT 2007


------- Additional Comments From focht at gmx.net  2007-27-04 04:03 -------

another one, probably same category ...

--- snip ---
(0x34e440,??$?5DU?$char_traits at D@std@@@std@@YAAAV?$basic_istream at DU?$char_traits at D@std@@@0 at AAV10@AAD at Z,256,0x6139c960,0x6139c9a0,(nil),1800)
trace:msvcrt:get_literal_string Failed at '?' in
?5DU?$char_traits at D@std@@@std@@YAAAV?$basic_istream at DU?$char_traits at D@std@@@0 at AAV10@AAD at Z
xe: undname.c:186: str_array_push: Assertion `ptr' failed.
wine: Assertion failed at address 0x7b2a48b2 (thread 0009), starting debugger...
--- snip ---

Should be:

--- snip undname.exe ---

Undecoration of :- "??$?5DU?$char_traits at D@std@@@std@@YAAAV?$basic_istream at DU?$c
har_traits at D@std@@@0 at AAV10@AAD at Z"

is :- "class std::basic_istream<char,struct std::char_traits<char> > & __cdecl s
td::operator>><char,struct std::char_traits<char> >(class std::basic_istream<cha
r,struct std::char_traits<char> > &,char &)"

--- snip undname.exe ---

As workaround i currently force the debugger to use native version and let the
debuggee use the builtin one (if needed).

How about automating the "compliance" testing between Micro$oft undname and
wine's version?
E.g. a little tool which loads both, the builtin version and the native one by
late binding (LoadLibrary/GetProcAddress), feeds both with same input and
compare the outputs against each other?
Dll names should be supplied on command line to get different msvcrt versions

Throw large quantities of binaries (.exe, .dlls) which export decorated symbols
at this tool.
E.g. a script which recursively scans filesystem, pick of any dll, dump exports,
pass it to both demangle calls and compare outputs.
Guard the demangle calls with SEH.

That way you get a much "real world" test cases than msvcrt cpp test.


Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

More information about the wine-bugs mailing list