我可以从Process Explorer可以使用的Delphi应用程序中发出调试符号吗?

Mic*_*ick 18 delphi debugging winapi

我正在调查使用Delphi 2010编写的应用程序的性能问题.Delphi是否会发出Process Explorer在查看当前正在运行的线程时可以使用的符号,以便我可以看到函数名称?

我已经阻止了我的可执行文件的名称,但是你可以看到它只给了我函数的内存地址,如果可能的话我想要解析函数名(就像我对ole32.dll和ntdll一样). dll,因为我正在使用MS符号服务器).

我知道这可以用于VC++应用程序和WinDbg ......可以用Delphi应用程序和Process Explorer完成吗?

在此输入图像描述

Mar*_*ema 17

是的,您需要做的是确保使用调试信息编译项目,并且链接器会发出详细的映射文件(项目链接选项).不确定,但您可能还需要检查链接器选项上的"包含远程调试符号".

如果有,可以使用实用程序将映射转换为ProcessExplorer使用的dbg格式.

每当我们需要在我们的一个测试服务器上的挂起线程上获得堆栈跟踪时,我们就会这样做.

我们使用的Map2Dbg实用程序:https://github.com/andremussche/map2dbg

  • @DavidHeffernan:当然不是,我们也没有:-)它没有挂起,它只是暂停反思! (6认同)
  • +1我不知道这个并且会发现它非常有用,而不是我的软件当然会挂起!! ;-) (3认同)