我的一位同事今天遇到了一些C++代码的问题。他正在调试一个对象的虚拟方法的奇怪行为。每当该方法执行时(在调试下,Visual Studio 2005),一切都会出错,调试器不会进入该方法,而是进入对象的析构函数!此外,对象的虚拟表只列出了它的析构函数,没有其他方法。
我以前从未见过这种行为,运行时错误会打印出有关ESP寄存器的信息。我希望我可以给你正确的错误消息,但我现在记不清了。
无论如何,你们中的任何人都遇到过这种情况吗?是什么原因导致了这种行为?如何解决?我们尝试多次重建项目,重新启动IDE,但都没有帮助。我们还在该方法调用之前使用了_CrtCheckMemory函数来确保内存处于良好状态,并返回true(表示正常)。我已经没有更多的想法了。你呢?
我以前从未见过这种行为,运行时错误会打印出有关ESP寄存器的信息。我希望我可以给你正确的错误消息,但我现在记不清了。
无论如何,你们中的任何人都遇到过这种情况吗?是什么原因导致了这种行为?如何解决?我们尝试多次重建项目,重新启动IDE,但都没有帮助。我们还在该方法调用之前使用了_CrtCheckMemory函数来确保内存处于良好状态,并返回true(表示正常)。我已经没有更多的想法了。你呢?