19

I'm investigating a performance issue with my application written in Delphi 2010. Does Delphi emit symbols that Process Explorer can use when viewing the currently running threads so I can see the function names?

I've blocked out the name of my executable, but you can see it only gives me the memory address of the function, and I'd like to have the resolved function name if possible (like I have for ole32.dll and ntdll.dll because I am using the MS symbol server).

I know this can be done for VC++ applications and WinDbg...can it be done with Delphi applications and Process Explorer?

enter image description here

Community
  • 1
  • 1
Mick
  • 13,248
  • 9
  • 69
  • 119

1 Answers1

19

Yep, what you need to do is make sure the project is compiled with debug info and that the linker emits a detailed map file (project link options). Not sure, but you may also have to check the "include remote debug symbols" on the linker options.

When you have that, you can use a utility to convert the map to the dbg format that ProcessExplorer uses.

We do this at work whenever we need to get a stack trace on a hung thread on one of our testservers.

The Map2Dbg utility we use: https://github.com/andremussche/map2dbg

gabr
  • 26,580
  • 9
  • 75
  • 141
Marjan Venema
  • 19,136
  • 6
  • 65
  • 79