Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Das Betriebssystem kümmert sich darum, hinter einem beendeten Prozess aufzuräumen. Das passiert unabhängig davon, wie der Prozess beendet wurde, normal oder durch Beenden des Debuggers.

Geschrieben
Original geschrieben von Guybrush Threepwood

Das heist also, das wenn z.B. Windows den reservierten Speicher des Prozesses

nicht freigibt (was es ja nicht macht), bleiben evtl. Speicherlecks wenn man den

Debugvorgang vorzeitig abbricht?

Nein. Windows räumt auf, wenn ein Prozess beendet wird, d.h. belegter Heap- und Freestorespeicher wird freigegeben, offene Handles werden geschlossen, geladene DLLs entladen (wenn kein anderer Prozess darauf zugreift) usw.

Dabei ist es egal, ob der Prozess normal terminiert hat, durch Abbrechen des Debuggers "abgewürgt" oder durch den Taskmanager, eine API-Funktion oder eine unbehandelte Ausnahme "abgeschossen" wurde.

Geschrieben
Original geschrieben von Klotzkopp

Nein. Windows räumt auf, wenn ein Prozess beendet wird, d.h. belegter Heap- und Freestorespeicher wird freigegeben, offene Handles werden geschlossen, geladene DLLs entladen (wenn kein anderer Prozess darauf zugreift) usw.

Wenn ich mir aber doch Speicher zur laufzeit reserviere (mit malloc oder new oder

so), dann muss ich den ja selber wieder freigeben. Wenn ich jetzt den Debugmodus

beende bevor er an der Stelle ankommt wo ich den Speicher wiederfreigebe, dann

müßte doch ein Speicherleck übrigbleiben, oder bin ich jetzt total auf dem Holzweg?

Geschrieben
Original geschrieben von Guybrush Threepwood

Wenn ich jetzt den Debugmodus beende bevor er an der Stelle ankommt wo ich den Speicher wiederfreigebe, dann müßte doch ein Speicherleck übrigbleiben, oder bin ich jetzt total auf dem Holzweg?

Deine Memoryleaks sind doch ansich nix boeses :)

Es geht dabei ansich immer auch eher darum, dass dein Programm zur Laufzeit nicht immer weiter im Speicher anwaechst und am Ende vielleicht noch abstuerzt.

Wenns beendet wurde dann ist das egal, dann wird vom System aufgeraeumt.

(Obwohl auch das schiefgehen kann)

Original geschrieben von Guybrush Threepwood

Wenn ich mir aber doch Speicher zur laufzeit reserviere (mit malloc oder new oder

so), dann muss ich den ja selber wieder freigeben.

Und wenn du ihn nicht freigibst, dann warst halt schlampig ;)

Goos

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...