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++ - 我们可以在 Windows 上使用/模拟 Solaris/Aix C/C++ 编译器吗?

c++ - Boost iterator_facade 取消引用

c++ - 使用 GDB 修复大型项目中的双重释放或损坏 (!prev) 错误

c++ - 如何使用 MinGW gdb 调试器在 Windows 中调试 C++ 程序?

c - 在 QEMU 中调试早期内核启动代码

linux - 在 gdb 中分配内存

c++ - 错误地将自动类型说明符用于 Eigen 对象