views:

88

answers:

1

When I'm debugging something in Delphi and there's a system library in the stack trace, I've got the name of the library and the function that's being called into. Unfortunately, this doesn't seem to apply to any other external DLLs. I've got one that was compiled in Visual C++ 2005, and any time it gives me any sort of trouble, I have to attach the VS debugger and start tracing through the code from the original entrance point, because Delphi gives me no clue what's actually happening.

This DLL was built with VS's debug information compiled into it, but apparently Delphi has no way of reading it. Is there some way to fiddle with the debug options to change that, so I can get meaningful function names in my stack trace the same as I can with system libraries?

+2  A: 

Delphi and Microsoft each use their own kind of debug information, and neither can use the others kind.

These two links might get you going into conversion:

http://social.msdn.microsoft.com/Forums/en-US/winserver2008appcompatabilityandcertification/thread/a32d5477-7d4f-4bfa-a147-51eb65e44ea1

http://www.openwatcom.org/index.php/Debugging%5FFormat%5FInteroperability

But I'd just fire up Visual C++ 2005 and debug the C++ portion there. That is: the opposite of the solution here:

http://stackoverflow.com/questions/594253/how-to-debug-a-dll-in-delphi

--jeroen

Jeroen Pluimers
Delphi's .map format can be converted to Microsoft's .pdb format using a tool mentioned in http://stackoverflow.com/questions/1237988/how-to-analyze-dump-file-from-delphi-dll
Lars Truijens
+1; thanks for this tip!
Jeroen Pluimers