我正在调查我在Delphi 2010中编写的应用程序的性能问题.Delphi是否会在查看当前正在运行的线程时发出Process Explorer可以使用的符号,以便查看函数名称?
我已经阻止了我的可执行文件的名称,但是你可以看到它只给了我该函数的内存地址,如果可能的话我希望得到已解析的函数名(就像我对ole32.dll一样)和ntdll.dll,因为我正在使用MS符号服务器。)
我知道可以为VC++ applications and WinDbg做到这一点......可以用Delphi应用程序和Process Explorer完成吗?
答案 0 :(得分:17)
是的,您需要做的是确保项目使用调试信息进行编译,并且链接器会发出详细的映射文件(项目链接选项)。不确定,但您可能还必须检查链接器选项上的“包含远程调试符号”。
如果有,可以使用实用程序将映射转换为ProcessExplorer使用的dbg格式。
每当我们需要在我们的一个测试服务器上的挂起线程上获取堆栈跟踪时,我们就会这样做。
我们使用的Map2Dbg实用程序:https://github.com/andremussche/map2dbg