gdb回溯不显示它来自的虚拟函数

gdb backtrace does not display virtual function it is coming from

本文关键字:虚拟 函数 回溯 显示 gdb      更新时间:2023-10-16

我有一个从Base继承的Derived类,并且我的一个函数发生了崩溃。我打开gdb试图弄清楚发生了什么,并试图打印出一个回溯。然而,当我100%知道路径是:Derived::func-调用>Base::func时,它只显示它调用了Base::func,但它没有在回溯中显示Dreived::func部分。是否有一些我遗漏的设置在手册中找不到?

这个问题没有足够的细节来回答它。你所看到的可能有很多原因。例如,从派生函数到基函数的调用可能已被编译器转换为尾部调用,这意味着派生调用不会出现在堆栈上。