Wie ein „Debug Assertionsfehler“ in VC ++ debuggen 6
-
05-09-2019 - |
Frage
Ich frage mich, wie die folgende Fehlermeldung zu debuggen:
Debug Assertion failure
Program: tomtoprog.exe
File: dbgheap.c
Line: 1044
Expression:_CrtIsValidHeapPointer(pUserData)
...
Ich bin ruhig neu Fenster Entwicklung mit VC ++ 6 ... gibt es eine valgrind oder so etwas? Der tomtoprog Code wird nicht von mir geschrieben und seinem ziemlich chaotisch ... so etwas wie valgrind würde mein Leben viel einfacher ...
machenVielen Dank im Voraus!
Mit freundlichen Grüßen,
Zhengtonic
Lösung
Es sieht aus wie Sie entweder Heapbeschädigung haben oder Sie eine doppelte frei von der gleichen Zeiger zu tun. Wenn Sie den Debugger brechen in das, was die letzte Zeile des Codes ist, die aufgerufen wird, wenn die Assertion auftritt?
Der beste Weg für Fragen wie diese zu überprüfen, ist eine Seite Heap-Verifizierer wie verwenden Pageheap.exe
Siehe auch diese Frage im Zusammenhang auf Stack-Überlauf
Andere Tipps
Hit ‚Wiederholen‘, und es wird in den Debugger brechen. Das wird Ihnen den Call-Stack. Von dort können Sie den Teil des Codes finden, die an Schuld.
. Hinweis: Sie wahrscheinlich löschen / Frei ing etwas zweimal