繁体   English   中英

回溯时如何获取文件名和行号?

[英]How can I get the filename and line number when Backtracing?

我看到了一种从以下帖子中获取符号名称的好方法。

Win32-C代码的回溯

但是,获取文件名和行号呢? 我试图使用SymGetLineFromAddr64,但是无法获取此调试信息。

如果您无法获得此调试信息,并且您的代码正确,则问题可能出在选项上。 您需要SYMOPT_LOAD_LINES来加载此信息:

SymSetOptions(SYMOPT_LOAD_LINES);

然后,假设您正在使用提供的链接中的代码,则将像这样:

DWORD  dwDisplacement;
IMAGEHLP_LINE64 line;

SymGetLineFromAddr64(process, (DWORD64)stack[i], &dwDisplacement, &line);

现在,您可以访问这些line成员(通过IMAGEHLP_LINE64结构 ):

DWORD   LineNumber;
PTSTR   FileName;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM