重写操作符new函数的调用堆栈不完整
GDB:: Call Stack incomplete for overridden operator new function?
我已经覆盖了new(unsigned int)和delete(void*)操作符,以便作为一个学习过程手动跟踪堆的信息。虽然我在跟踪新的操作符函数时遇到了麻烦。
我正在使用CodeBlocks与GDB。无论我是进入操作符函数还是进入它的断点,如果我进入返回指令,它都不能跟随调用者函数。"调用堆栈"窗口也不显示调用方函数地址。
什么线索吗?提前感谢!
虽然问题中没有足够的信息来明确地回答,但我还是大胆猜测一下。
我猜你是在调试一个优化的构建,甚至可能没有调试符号。
如果你在没有优化的情况下构建(-O0
),生成的代码将更接近于源代码,因为优化器不会有内联函数,移动代码等。如果您启用了调试符号(-g
),编译器将把更多的信息放入二进制文件中,调试器可以使用这些信息来为您提供有关符号和值的更准确的信息。
相关文章:
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头
- 为什么调用堆栈数组会导致内存泄漏
- 是否可以检查悬挂光纤的调用堆栈?
- MSVC __debugbreak() 与 openGL 错误回调一起使用时不会产生调用堆栈
- 了解使用堆栈实现队列的递归调用机制
- C++析构函数调用两次,堆栈分配的复合对象
- 以下代码如何工作以每次为唯一调用堆栈唯一实例化模板函数?
- OpenCV 3 Visual Studio 2017 调试,调用堆栈没有.pdb文件
- C/C++中全局调用堆栈的基础
- 是否可以访问代码中的调用堆栈?
- 使用在堆栈上创建的对象调用虚拟函数
- 为什么析构函数无休止地调用自己(导致堆栈溢出)?
- 调用堆栈显示 SIGBUS,这意味着什么
- 堆栈展开如何与析构函数调用有关?
- 打开C++故障转储不会在调用堆栈中显示正确的行
- 防止 CRTP 特征码在"pure virtual"调用中堆栈溢出
- 将参数推送到调用堆栈 (C++) 的可移植方法
- 从基类堆栈调用派生类实例
- 堆栈调用析构函数,即使遵循三规则
- 用于生成函数以从运行时堆栈调用带参数的函数的模板