Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我的程序(在 Linux 上用 D 编译器 DMD 编译)崩溃,并打印如下信息:
./program() [0x807aff8] ./program() [0x807aea9]
如何将函数的地址转换为其名称?我已经用它编译了我的程序,-debug所以-g它应该包含所需的调试信息,我只是不知道如何使用它。
-debug
-g
(PS:这很简单,但我似乎找不到怎么做。可能没有使用正确的搜索词)。
看看addr2line实用程序
addr2line
$ gcc -g s.c $ addr2line 0x400855 s.c:42
在 gdb 中运行您的应用程序,然后在崩溃后键入 bt 以打印完整的回溯,这通常比仅发生崩溃的那一行要好得多。