Collateral exceptions seem to be broken

Rainer Schuetze r.sagitario at gmx.de
Mon May 9 23:56:39 PDT 2011


Rainer Schuetze wrote:
> 
> Andrej Mitrovic wrote:
>> You mean my build of DMD/Phobos?
>>
>> Well the debug symbols are definitely shown after I run cv2pdb on the
>> executable (it makes a .pdb file with all the symbols which get loaded
>> at runtime by the exe).
>>
>> Perhaps displaying names is just unimplemented yet in 2.053 for
>> Windows. Using cv2pdb is not a problem for me (and it allows me to use
>> VisualD's debugger, which is nice).
> 
> It is implemented, but there are currently a few problems:
> 
> - the stacktrace uses dbghelp.dll to get symbol information for a code 
> address. This often doesn't work with the debug information emitted by
> dmd/optlink. You have to convert it with cv2pdb to make it digestable to
> dbghelp.

I stand corrected here. What you need is a newer version of dbghelp.dll 
than the one found on XP. You can find one in a newer Windows SDK or the 
"Debugging Tools for Windows" from Microsoft.

> 
> - a recent change in dmd causes debug symbols to be written unmangled,
> not with mangled names adding all symbols to the list of symbols causing
> trouble. This helps debuggers to display sensible names without the need
> to be able to demangle names. Additionally, it allows inspecting globals
> without knowing the mangled name.
> But with this change in place, it is no longer necessary to try
> demangling the names. The change might break some tools that rely on 
> mangled names, though. Does this raise a red flag for someone?

I have to correct myself again: The debug info has both versions now in 
two seperate places. The call stack uses the global symbol table and its 
symbols are still mangled.



More information about the Digitalmars-d mailing list