🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #12473

Re: segmentation fault ?

#12473
From: Bart.Vanhauwaert
Date: Tue, 13 Nov 2001 13:23
41 lines
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-mail
References: <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