我试图在死后模式下将gdb
与崩溃进程的核心转储一起使用。我可以获得堆栈跟踪,但是gdb
并未向我显示出该违规函数中的实际位置,而是向我显示了该违规函数调用的两行内联函数的行号。
内联函数被称为很多地方。我如何找到哪个电话触发了崩溃?如何在内联函数附近立即找到代码?
最佳答案
转到有问题的堆栈框架,打印指令点(例如p $ rip),
然后使用它来手动查找,例如“addr2line -e -i 0x84564756”。
这不会扩展,但至少可以正常工作。
关于debugging - 将gdb与内联函数一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/546475/