MemoryLeak

Hallo zusammen,

Ich weiss, man sollte eigentlich nach einem malloc oder calloc irgendwann auch mal wieder ein free setzen. Aber manchmal wird man ja abgelenkt und dann geht dem Programm irgendwann der Speicher aus.

Wer kennt für den PC das ultimative Aufspürprogramm von MemoryLeaks. Ich habe im Moment Purify und BoundChecker.

Franz

Hallo - leider kann ich dir da nicht helfen, denn ich frage mich selbst schon seit längerer Zeit, wie ich mit VC++ (und zwar ohne MFC) überhaupt MemoryLeaks auf die Schliche kommen kann (mal von new und delete-Zählen abgesehen) … weiß irgendjemand Rat?

Hi,

leider kann ich dir da nicht helfen, denn ich frage
mich selbst schon seit längerer Zeit, wie ich mit VC++ (und
zwar ohne MFC) überhaupt MemoryLeaks auf die Schliche kommen
kann (mal von new und delete-Zählen abgesehen) … weiß
irgendjemand Rat?

Java benutzen, lol.
Sorry. Also ich wuerde den Code in einem Debugger schrittweise ausfuehren und schauen, wo Seicher alloziert wird, der nicht wieder freigegeben wird. In einem ordentlich designten Programm sollte man das Loch so relativ schnell aufspueren koennen. Und als entwickler arbeitet Ihr ja hoffentlich auf einem transparenten System oder? :wink:

Gruss

Thorsten

Hallo Thorsten,

Ich schrieb ja bereits, daß manchmal eben nicht Uni-mässig programmiert wird. Das Debuggen in etwa 5000 Dateien (ca. 600 Zeilen/Datei) dürfte auch Dir schwere Motivationsprobleme verursachen.

Franz

Hallo Johannes,

Vielen Dank für Deine Nachricht. Also wenn Du kein Tool hast, dann nimm BoundsChecker von NuMega. Es funktionert recht ordentlich auf PC. Purify ist für Unix unsere 1. Wahl. Das Problem, welches ich habe liegt im Programmierstil. Es wird am Anfang zur Init-Phase jede Menge allokiert und nie wieder freigegeben. Das ist ja auch ok. Nur wenn jemand während der Arbeitsphase Speicher allokiert und davon etwas nicht wieder freigibt verliert sich das schnell in dem Wust der Init-Phase.

Franz

Hi,

Ich schrieb ja bereits, daß manchmal eben nicht Uni-mässig
programmiert wird. Das Debuggen in etwa 5000 Dateien (ca. 600
Zeilen/Datei) dürfte auch Dir schwere Motivationsprobleme
verursachen.

Oh Gott, allein bei dem Gedanken kriege ich einen Nervenzusammenbruch :wink:
Wenns um die Initialisierung geht, sollte der Code so organisiert sein, dass fuer die Initialisierung bestimmte Klassen verantlich sind, die den Speicher dann in den Destruktoren wieder freigeben. Ja, schlau daher geschwaetzt :wink: Ok, ich schaetze Du brauchst einen gutes Tool das Dir hilft, sorry.

Gruss

Thorsten

Hi!

Direkt helfen kann ich auch nicht, aber schau mal ob Du mittels den Begriffen: Enforcer - Mungwall - CodeGuard oder Memwatch etwas anfangen kannst. Es sind verschiedene Programme zum aufsprüen von illegalien speicherzugriffen.

Gruß

Michael