2

我想知道如何调试以下错误:

Debug Assertion failure

Program: tomtoprog.exe
File: dbgheap.c
Line: 1044

Expression:_CrtIsValidHeapPointer(pUserData)
...

我对使用 VC++ 6 进行 Windows 开发很陌生……有 valgrind 或类似的东西吗?tomtoprog 代码不是我写的,而且相当混乱......所以像 valgrind 这样的东西会让我的生活更轻松......

提前致谢!

最好的祝福,

正补品

4

2 回答 2

3

点击“重试”,它会进入调试器。这会给你调用堆栈。从那里,您可以找到有问题的代码部分。

提示:您可能两次删除/释放某些内容。

于 2009-02-17T14:16:28.243 回答
3

看起来你要么有堆损坏,要么你正在做一个没有同一个指针的双重释放。如果您闯入调试器,断言发生时调用的代码的最后一行是什么?

检查此类问题的最佳方法是使用PageHeap.exe 之类的页面堆验证程序

另请参阅有关堆栈溢出的相关问题

Win32下的堆损坏;如何定位?

于 2009-02-17T14:17:01.003 回答