如何在VC ++ 6中调试“调试断言失败”

时间:2009-02-17 14:10:55

标签: debugging visual-c++ vc6 assertions

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

Debug Assertion failure

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

Expression:_CrtIsValidHeapPointer(pUserData)
...

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

提前致谢!

致以最诚挚的问候,

Zhengtonic

2 个答案:

答案 0 :(得分:3)

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

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

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

Heap corruption under Win32; how to locate?

答案 1 :(得分:2)

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

提示:你可能会删除/释放两次。