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.

Reply via email to