我正在尝试使用 gdb
在具有崩溃进程的核心转储的事后分析模式中。我可以获得堆栈跟踪,但没有向我显示违规函数中的实际位置,gdb
向我显示有问题的函数调用的两行内联函数的行号。
内联函数在很多地方被调用;我如何找到哪个调用触发了崩溃?如何立即找到内联函数周围的代码?
最佳答案
转到有问题的堆栈帧,打印指令点(例如 p $rip),
然后使用它手动查找它,例如“addr2line -e -i 0x84564756”。
这不能扩展,但至少它有效。
关于debugging - 使用带有内联函数的 gdb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/546475/