c++ - gdb backtrace 不显示它来自的虚函数

标签 c++ gdb

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

最佳答案

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

关于c++ - gdb backtrace 不显示它来自的虚函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25691531/

相关文章:

c++ - 创建类的对象时函数调用的顺序

c++ - 为什么这两个变量不相等

c++ - 使用 C++ 中的函数初始化 const bool 数组

gdb - 在 gdb 中移动断点

c++ - 被通告扼杀的 friend 功能包括

c++ - 更新数组元素(数组中有新元素进入后,最旧的元素将被删除)

linux - 尝试 ret2libc 利用时获取环境变量的位置

C++ 对象转字符串

c - 如何在另一个 C 任务中调用 JNI 的 C 方法?

gdb - 如何在gdb中打印wstring