0

我习惯于gprof分析我的 C 代码,但我想开始使用基于 GUI 的 Windows 应用程序,例如 Luke Stackwalker。gprof在我的二进制文件上工作得很好,但是 Luke Stackwalker 有一些问题:

Launching executable C:\lshare\POT03\Eclipse\Debug\POTaak3.exe.
SymInit: Symbol-SearchPath: ';.;C:\Program Files\Luke Stackwalker;C:\Program Files\Luke Stackwalker;C:\WINDOWS;C:\WINDOWS\system32;SRV*C:\websymbols*http://msdl.microsoft.com/download/symbols;', symOptions: 530, UserName: 'Pieter'

OS-Version: 5.1.2600 (Service Pack 3) 0x100-0x1

C:\lshare\POT03\Eclipse\Debug\POTaak3.exe:POTaak3.exe (00400000), size: 61440, SymType: '-unknown-', PDB: '$Tƒ|'
C:\WINDOWS\system32\ntdll.dll:ntdll.dll (7C900000), size: 753664, SymType: '-unknown-', PDB: '©Uƒ|'
C:\WINDOWS\system32\kernel32.dll:kernel32.dll (7C7D0000), size: 1048576, SymType: '-unknown-', PDB: '©Uƒ|'
C:\WINDOWS\system32\msvcrt.dll:msvcrt.dll (77BE0000), size: 360448, SymType: '-unknown-', PDB: '©Uƒ|'
ERROR: SymGetModuleInfo64, GetLastError: 1114 (Address: 7C90E514)
Sorting profile data.
Done; 2 samples collected at 1.$ samples/second.

谁在什么中射谁?我在这里做错了什么?我确实记得使用-pg国旗。

4

2 回答 2

0

我理解你为什么想要gprof以外的东西。Luke Stackwalker 获取堆栈样本,但(上次我检查)它没有总结在代码行级别使用的挂钟时间的包容性百分比。在 Linux 上,您可以使用lsstackpstack,Windows 上必须有类似的工具。在您的情况下,我只是依靠 IDE 中的暂停按钮来拍摄stackshots

于 2010-02-21T18:18:38.483 回答
0

SymType -unknown- 表示程序未使用 gcc -g 选项编译以生成调试信息,或者 Luke Stackwalker 使用的 microsoft debughelp 库无法识别调试信息格式。

请检查您在编译程序时是否使用了 -g 选项(而不是剥离可执行文件)。否则,很高兴知道您使用的是哪个 gcc 版本。

于 2010-02-24T17:57:11.650 回答