2009-02-17 71 views
1

我不知道如何调试以下错误调试“调试断言失败”:如何在VC++ 6

Debug Assertion failure 

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

Expression:_CrtIsValidHeapPointer(pUserData) 
... 

我很安静新的Windows开发用VC++ 6 ...有一个Valgrind的或类似的东西? tomtoprog代码不是由我写的,它相当凌乱......所以像valgrind的东西会让我的生活更轻松...

在此先感谢!

最好的问候,

Zhengtonic

回答

3

它看起来像你有堆腐败,或者你正在做一个没有相同的指针双。如果闯入调试器,当断言发生时,被调用的代码的最后一行是什么?

检查类似这样的问题,最好的方法是使用页堆验证像PageHeap.exe

也看到堆栈溢出此相关的问题

Heap corruption under Win32; how to locate?

2

点击 '重试',它会中断到调试器。这会给你的调用堆栈。从那里,你可以找到你的代码错误的部分。

提示:您可能删除/释放了两次。