C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Suche nach einem Speicherleck

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German)
View previous topic :: View next topic  
Author Message
Alexander Dietz
Guest





PostPosted: Mon May 24, 2004 7:34 am    Post subject: Suche nach einem Speicherleck Reply with quote



Hallo,

ich habe ein groesseres und sehr komplexes Program (insgesamt fast
20.000 Zeilen) in dem wohl ein Speicherleck auftaucht. An einer Stelle
des Programms bricht das Program mit einem 'segmentation fault' ab.

Wie finde ich die Stelle, an der dieses Leck entsteht?
Wie kann ich herausfinden, welche Zeile (die ja auch vielleicht sehr
viel frueher im Code steht) dieses 'segmentation fault' ausloest?


Fuer sinnvolle Hilfe waere ich sehr dankbar!

Gruss
Alexander Dietz

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Torsten Schneider
Guest





PostPosted: Mon May 24, 2004 9:14 am    Post subject: Re: Suche nach einem Speicherleck Reply with quote



Alexander Dietz <alexd4351 (AT) compuserve (DOT) de> wrote:

Quote:
Wie finde ich die Stelle, an der dieses Leck entsteht?
Wie kann ich herausfinden, welche Zeile (die ja auch vielleicht sehr
viel frueher im Code steht) dieses 'segmentation fault' ausloest?

Ich habe keine Ahnung, welchen C++-Compiler du einsetzt, aber dies ist
ein klarer Fall für einen Debugger.


Grüße, Torsten

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Andreas Huennebeck
Guest





PostPosted: Mon May 24, 2004 9:40 am    Post subject: Re: Suche nach einem Speicherleck Reply with quote



Alexander Dietz wrote:

Quote:
ich habe ein groesseres und sehr komplexes Program (insgesamt fast
20.000 Zeilen) in dem wohl ein Speicherleck auftaucht. An einer Stelle
des Programms bricht das Program mit einem 'segmentation fault' ab.

Ein segmention fault ist keine Folge eines Speicherlecks, sondern eher
von dessen Gegenteil (Zugriff auf Speicher, der schon freigegeben wurde).

Quote:
Wie finde ich die Stelle, an der dieses Leck entsteht?
Wie kann ich herausfinden, welche Zeile (die ja auch vielleicht sehr
viel frueher im Code steht) dieses 'segmentation fault' ausloest?

Schwierig. valgrind und mpatrol koennten helfen. Ansonsten Debuggen.

Tschau
Andreas
--
Andreas Hünnebeck | email: [email]ah (AT) despammed (DOT) com[/email]
----- privat ---- | www : http://www.huennebeck-online.de
Fax/Anrufbeantworter: 0721/151-284301 o. 0180/50525-5232659 (24 Pfg/Min)
SMS: D1=72617 D2=0172/7366-042 E-Plus=0177/7934-396 Viag=0179/2029-894
GPG-Key: http://www.huennebeck-online.de/public_keys/andreas.asc

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Vinzent 'Gadget' Hoefler
Guest





PostPosted: Mon May 24, 2004 10:45 am    Post subject: Re: Suche nach einem Speicherleck Reply with quote

Torsten Schneider wrote:

Quote:
Alexander Dietz <alexd4351 (AT) compuserve (DOT) de> wrote:

Wie finde ich die Stelle, an der dieses Leck entsteht?
Wie kann ich herausfinden, welche Zeile (die ja auch vielleicht sehr
viel frueher im Code steht) dieses 'segmentation fault' ausloest?

Ich habe keine Ahnung, welchen C++-Compiler du einsetzt, aber dies ist
ein klarer Fall für einen Debugger.

Nein. Fuer einen Code-Review.


Vinzent.

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Michael Schlenger
Guest





PostPosted: Mon May 24, 2004 10:23 pm    Post subject: Re: Suche nach einem Speicherleck Reply with quote

On 24 May 2004 00:34:24 -0700, [email]alexd4351 (AT) compuserve (DOT) de[/email] (Alexander
Dietz) wrote:

Quote:
Hallo,

Wie finde ich die Stelle, an der dieses Leck entsteht?
Wie kann ich herausfinden, welche Zeile (die ja auch vielleicht sehr
viel frueher im Code steht) dieses 'segmentation fault' ausloest?

Das hängt davon ab, was du unter "Entstehen" und "Auslösen" vestehen

willst. Etwa Code wie

p = new P;
...
delete p;

vielleicht?
Schreibt man nämlich später z.B.

p-> f();

gibt's ein Problem. Wo liegt nun der Fehler?
Viele finden, die letzte Zeile ist fehlerhaft, weil das Objekt schon
nicht mehr existiert, aber trotzdem darauf zugegriffen wird.

Andere (ich z.B. ) wiederum finden die delete-Anweisung fehlerhaft.
Danach hat p nämlich den gleichen Wert, obwohl das Objekt nicht mehr
existiert. Zeiger sollten aber immer nur auf gültige Objekte
verweisen, oder 0 sein.

Ich möchte hier keine Lösung präsentieren (SAFEDELETE, oder smart
pointer etc.), sondern nur klarmachen: die Problematik mit
Speicherlecks, seg faults etc. muss im Gesamtzusammenhang gesehen
werden. "Die" eine Zeile, die falsch ist, gibt es in der Praxis nicht.






------------------------------------------------
Michael Schlenger
------------------------------------------------

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
James Kanze
Guest





PostPosted: Fri May 28, 2004 9:19 pm    Post subject: Re: Suche nach einem Speicherleck Reply with quote

[email]schneider (AT) mabi (DOT) de[/email] (Torsten Schneider) writes:

Quote:
Alexander Dietz <alexd4351 (AT) compuserve (DOT) de> wrote:

Wie finde ich die Stelle, an der dieses Leck entsteht? Wie kann
ich herausfinden, welche Zeile (die ja auch vielleicht sehr viel
frueher im Code steht) dieses 'segmentation fault' ausloest?

Ich habe keine Ahnung, welchen C++-Compiler du einsetzt, aber dies
ist ein klarer Fall für einen Debugger.

Und wie findest du sowas mit einem Debugger?
--
James Kanze
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.