对于重写的运算符新函数,GDB :: Call Stack是否不完整?

时间:2016-08-13 11:56:56

标签: c++ gdb heap call codeblocks

我已经覆盖了新的(unsigned int)和delete(void *)运算符,以便手动跟踪和关于堆的信息作为学习过程。虽然我无法跟踪新的操作员功能。

我正在使用CodeBlocks和GDB。无论我是单步执行操作符函数还是断点操作,如果我单步执行返回指令,它都无法跟随调用函数。 “调用堆栈”窗口也不显示调用者函数地址。

有任何线索吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

虽然问题中没有足够的信息可以肯定地回答,但我会猜测。

我的猜测是你正在尝试调试优化版本,甚至可能没有调试符号。

如果你在没有优化的情况下构建(-O0),生成的代码将更接近地匹配源,因为优化器不会有内联函数,移动代码等等。如果启用调试符号({{1} })编译器会将更多信息放入二进制文件中,调试器可以使用它来为您提供有关符号和值的更准确信息。