Fehlermeldung - Wichtig!
-
Hallo!
Ich hab ein großes Prob. Mein Proggi ist soweit fertig und in 2 wochen muss ich es abgeben, allerdings tritt jetzt plötzlich ein fehler auf, von dem ich nicht weiß woher er kommt:
- es kommt zu mehreren fehlerhaften Speicherzugriffen beim beenden des Programms
- diese Fehler treten nur im Release Mode auf nicht im Debug Mode, wodurch alle Debug Methoden zur Lösung des Probs entfallen
- der fehler scheint nicht in meinem eigenen code zu sein
- beim ausführen im release mode erscheint im trace fenster die meldung
HEAP[Wetter Info.exe]: Invalid Address specified to RtlFreeHeap( 00350000, 0014ADCC )Weiß irgendjemand woher das kommen könnte????????????????
Ich hab wirklich schon alle codezeilen, die ich mir denken könnte, die damit zusammenhängen auskommentier, aber ohne ergebniss......
Falls jemand eine Ahnung haben könnte woher der Fehler kommt - BITTE, BITTE, BITTE postet.......
p.s. ich weiß das ganze ist sehr ungenau, aber mehr weiß ich auch nicht.
-
Wenn es im Debugmodus nicht auffällt, dann ist es sehr warhscheinlihc, dass du auf nicht "sicheren" speicher zugreifst, z.B. über Arraygrenzen hinweg:
int array[50];
array[60] = x;
Oder ähnliche Speicherzugriffe über zeiger, die auf nicht dafür vorgesehenen Speicher zeigen.
Im Debug ist es nämlich so, dass zwischen den Variablen speicherfreiräume gelassen werden. Dadurch greifst du im Debugmode auf einfach nur leeren Speicher zu, während du im Releasemode auf anders benötigten zugreifen könntest.
-
der fehler scheint eher im zusammenhang mit einem delete stehen ...
Folgendes könnte so einen Fehler produzieren, wenn ich mich nicht täusche:char *ch = new char[100]; ch+= 50; delete[] ch;
-
Wenn Dein Programm aus mehreren Projekten besteht, auch darauf, dass alle mit derselben Version der C-Runtime verlinkt sind. Dass der Fehler nur im Release auftaucht, spricht dafür. Wahrscheinlich sind die Einstellungen bei Debug gleich, und bei Release nicht.
So was kann aber auch passieren, wenn Du bei COM [in]-Variants mit VariantChangeType bearbeitest. Da sollte man immer erst eine lokale Kopie machen.
-
txh erst mal an alle!
das problem hatte sich von alleine aufgelöst, nachdem ich nocheinmal komplett neu kompiliert habe. ich denke mal das der compiler bei den vorherigen "nur ergänzenden compilierungen" etwas übersehen hat...
wen es interressiert:
ich habe ein DirectX-Wetter Informations Programm geschrieben, welches Daten entweder aus einer mySQL Datenbank liest oder aus einer xml-Datei die durch einen eigens geschrieben Parser ausgelesen wird... die Daten sind momentan noch einen Tag alt, dass werde ich aber noch ändern...
-
Hallo an alle,
ich weiß ist schon ein ziemlicher alter Thread hier.
Ich habe ungefähr dasselbe Problem.
Ich habe in ein älteres Programm ein neues Projekt eingebunden wobei es sich um eine statische Lib handelt.
Nutze ich diese Lib jetzt bekam ich den Fehler das einige Lib Methoden bereits enthalten waren woraufhin ich in der Linker Command Line /FORCE:MULTIPLE eingestellt habe.Nun bekomme ich innerhalb eines Threads immer an der gleichen Stellen den Heap Fehler.
Kann dies mit dem Linker Schalter FORCE zusammenhängen?Gruß
Karsten
-
Ich weiss, hört sich jetzt blöd an ...
... aber hat hier jemand ASSERT mit VERIFY verwechselt?
-
Beiträge mit "wichtig", "dringend", "!!!" oder Ähnlichem im Titel klicke ich eigentlich prinzipiell nicht an.
Diesmal nur, um das mal loszuwerden. :p
-
Hi,
ich hab das gleiche Problem, hat irgendjemand gute Tipps wie ich da wieder raus komme? Gibts eine Methode um diese Pointer aufzuspüren? Oder die illegalen Zugriffe direkt anzeigen zu lassen?
Bei mir funktioniert im Debug Modus alles nur im Release Modus kommen die Fehler. Arrays habe ich soweit ich weiß keine benutzt und stattdessen auf vector zurückgegriffen. Das ist sicherer oder?
MfG
Scarabol
-
Manchmal ist es besser einen neuen Thread anzufangen als einen alten hervorzukramen:
Ansonsten:
http://blog.m-ri.de/index.php/2008/10/27/vs-tipps-tricks-heap-bugs-finden-teil-1/
http://blog.m-ri.de/index.php/2008/10/31/vs-tipps-tricks-heap-bugs-finden-teil-2/
http://blog.m-ri.de/index.php/2008/11/04/vs-tipps-tricks-heap-bugs-finden-teil-3/
http://blog.m-ri.de/index.php/2008/11/27/vs-tipps-tricks-heap-bugs-finden-teil-4/