Luke Stackwalker在运行时返回错误,gprof运行良好

时间:2022-10-07 17:43:18

I'm used to gprof for profiling my C code, but I want to start using a GUI-based Windows application such as Luke Stackwalker. gprof works perfectly fine on my binary, but Luke Stackwalker has some issues:

我习惯了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.

Who shot the who in the what now? What am I doing wrong here? I did remember to use the -pg flag.

谁在什么地方开枪了?我在这里做错了什么?我记得使用-pg标志。

2 个解决方案

#1


0  

I understand why you want something other than gprof. Luke Stackwalker takes stack samples, but (last time I checked) it doesn't summarize inclusive % of wall-clock time used at the level of lines of code. On Linux, you could use lsstack or pstack, and there must be a similar tool on Windows. In your situation, I just rely on the pause button in the IDE to take stackshots.

我理解你为什么想要除gprof以外的东西。Luke Stackwalker接受了堆栈样本,但是(上次我检查过)它没有总结在代码行级别上使用的壁挂式时钟时间的包含百分比。在Linux上,您可以使用lsstack或pstack, Windows上必须有一个类似的工具。在您的情况下,我只是依赖IDE中的pause按钮进行堆栈快照。

#2


0  

The SymType -unknown- means that either the program has not been compiled with the gcc -g option to generate debug info, or the debug info format cannot be recognized by the microsoft debughelp library that is used by Luke Stackwalker.

符号类型-未知-意味着程序没有使用gcc -g选项编译来生成调试信息,或者调试信息格式不能被Luke Stackwalker使用的microsoft debughelp库识别。

Please check that you are using the -g option when compiling the program (and not stripping the executable). Otherwise, it would be nice to know which gcc version you are using.

请检查您在编译程序时是否使用了-g选项(并没有剥离可执行文件)。否则,最好知道您正在使用哪个gcc版本。

#1


0  

I understand why you want something other than gprof. Luke Stackwalker takes stack samples, but (last time I checked) it doesn't summarize inclusive % of wall-clock time used at the level of lines of code. On Linux, you could use lsstack or pstack, and there must be a similar tool on Windows. In your situation, I just rely on the pause button in the IDE to take stackshots.

我理解你为什么想要除gprof以外的东西。Luke Stackwalker接受了堆栈样本,但是(上次我检查过)它没有总结在代码行级别上使用的壁挂式时钟时间的包含百分比。在Linux上,您可以使用lsstack或pstack, Windows上必须有一个类似的工具。在您的情况下,我只是依赖IDE中的pause按钮进行堆栈快照。

#2


0  

The SymType -unknown- means that either the program has not been compiled with the gcc -g option to generate debug info, or the debug info format cannot be recognized by the microsoft debughelp library that is used by Luke Stackwalker.

符号类型-未知-意味着程序没有使用gcc -g选项编译来生成调试信息,或者调试信息格式不能被Luke Stackwalker使用的microsoft debughelp库识别。

Please check that you are using the -g option when compiling the program (and not stripping the executable). Otherwise, it would be nice to know which gcc version you are using.

请检查您在编译程序时是否使用了-g选项(并没有剥离可执行文件)。否则,最好知道您正在使用哪个gcc版本。