重写操作符new函数的调用堆栈不完整



我已经覆盖了new(unsigned int)和delete(void*)操作符,以便作为一个学习过程手动跟踪堆的信息。虽然我在跟踪新的操作符函数时遇到了麻烦。

我正在使用CodeBlocks与GDB。无论我是进入操作符函数还是进入它的断点,如果我进入返回指令,它都不能跟随调用者函数。"调用堆栈"窗口也不显示调用方函数地址。

什么线索吗?提前感谢!

虽然问题中没有足够的信息来明确地回答,但我还是大胆猜测一下。

我猜你是在调试一个优化的构建,甚至可能没有调试符号。

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

最新更新