Article View: be.comp.programming
Article #12473Re: segmentation fault ?
From: Bart.Vanhauwaert
Date: Tue, 13 Nov 2001 13:23
Date: Tue, 13 Nov 2001 13:23
41 lines
2592 bytes
2592 bytes
Benoit Liessens <benoit.liessens@freeweb.be> wrote: > Wat mag zo'n beest zijn. Het programma eindigt vroegtijdig met de melding > 'segmentation fault' ? Je programma probeerde meer dan waarschijnlijk geheugen aan te spreken zonder het te mogen. Veel voorkomende gevallen. - twee keer hetzelfde deleten - null pointer dereferencen - iets dereferencen zonder eerst new - const gedeclareerd memory via const-cast toch willen veranderen - out-of-bound array cast - reinterpret_cast, reinterpret-cast of c-style cast truikjes met bugs - iterators gebruiken die geinvalideerd zijn door een eerdere operatie - ... Kortom : de meest verscheidene dingen zijn mogelijk. Indien het een vieze error is zal je niet onder manueel debuggen onderuit komen. Maar probeer toch eerst eens te kijken of je je code niet kan refactoren zodat 'gevaarlijke' dingen vervangen kunnen worden door niet-gevaarlijke dingen. Een goede leidraad is het principe : constructors om dingen (meestal geheugen of files) aan te vragen, destructors om diezelfde zaken weer vrij te geven. In veel gevallen kan je dan het gebruik van pointers vervangen door het gebruik van die klasses (NIET pointers naar die classes) Aangezien het de compiler zijn verantwoordelijk is om altijd te zorgen dat voor ieder object eerst een constructor wordt aangeroepen, dan een of meerdere member functies en ten slotte de destructor ben je zeker dat alles wat gebruikt wordt aangevraagd is en dat alles wat aangevraagd is ook zal worden vrijgegeven. Het type voorbeeld van deze strategie zie je in het gebruik van strings. Ipv direct te werken met char*, werk je met std::string. cu bart -- http://www.irule.be/bvh/be/politics
Technical Details
Message-ID:
<cs6rs9.6tc.ln@10.0.0.2>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!newsfeed.direct.ca!look.ca!btnet-peer0!btnet-peer!btnet!newspeer.clara.net!news.clara.net!skynet.be!skynet.be!louie!not-for-mailReferences:
<3bf04743$0$12226$4d4efb8e@news.be.uu.net>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,c2546ec08191c9f4
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2001-11-13 06:31:06 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!newsfeed.direct.ca!look.ca!btnet-peer0!btnet-peer!btnet!newspeer.clara.net!news.clara.net!skynet.be!skynet.be!louie!not-for-mail
Sender: - <bvh@ns1.irule.be>
From: Bart.Vanhauwaert@nowhere.be
Subject: Re: segmentation fault ?
Newsgroups: be.comp.programming
References: <3bf04743$0$12226$4d4efb8e@news.be.uu.net>
User-Agent: tin/1.4.4-20000803 ("Vet for the Insane") (UNIX) (Linux/2.2.17-21mdksecure (i686))
Date: Tue, 13 Nov 2001 14:23:24 +0100
Message-ID: <cs6rs9.6tc.ln@10.0.0.2>
Lines: 41
NNTP-Posting-Host: 194.78.202.248
X-Trace: 1005661864 reader1.news.skynet.be 36463 194.78.202.248
X-Complaints-To: abuse@skynet.be