从崩溃信息中打印函数名称
我的程序(在 Linux 上用 DMD(一种 D 编译器)编译的)崩溃了,并打印如下信息:
./program() [0x807aff8]
./program() [0x807aea9]
如何将函数的地址转换为其名称?我已经使用 -debug
和 -g
编译了我的程序,因此它应该包含所需的调试信息,我只是不知道如何使用它。
(PS:这很简单,但我似乎找不到如何做到这一点。可能没有使用正确的搜索词)。
My program (which is compiled with DMD, a D compiler, on Linux) is crashing, and printing information like:
./program() [0x807aff8]
./program() [0x807aea9]
How can I convert the addresses of the functions to its names? I've compiled my program with the -debug
and -g
so it should include the required debugging information, I just don't know how to use it.
(PS: This is something simple but I can't seem to find how to do it. Probably not using the right search terms).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
查看
addr2line
实用程序Have a look at the
addr2line
utility在 gdb 中运行您的应用程序,然后在崩溃后,输入 bt 来打印完整的回溯,这通常比仅发生崩溃的行要好得多。
Run your aplication inside gdb, then, after the crash, type bt to print the complete backtrace, which usually much better than just the line where the crash happened.