[elektro] Szegmentálási hiba

Acs Gabor levlista at e8e.eu
Fri Mar 14 10:12:15 CET 2014


Nagy segítség volt amiket ebben a témában kaptam Tőletek, köszönöm szépen!

Úgy sikerült megfogni a hibát, hogy a programot -g kapcsolóval 
fordítottam, és utólag elemeztem a gdb-vel. Azt szeretném Tőletek ezzel 
kapcsolatban kérdezni, hogy ha így is hagyom, és így adom ki a 
programomat, annak van-e valami hátránya a normál fordításhoz képest 
azon kívül, hogy nagyobb méretű a file?

Érdekes módon a gdb alatt futtatva a programot soha nem akadt ki, nem 
tudom miért. Viszont ha normálisan futtattam, és bekapcsoltam a core 
dumpot, akkor sikeresen el tudtam kapni a hibát, és meg is találtam mit 
rontottam el. Pont a bejövő parancsok vizsgálatánál miután 
megállapítottam, hogy egy táblázat jellegű struktúrában olyan rekordra 
próbáltak hivatkozni, ami kívül esik a lehetséges tartományon, és 
kiadtam a hibajelzést, utána még megvizsgáltam a rekordban azt is, hogy 
annak az inicializálása végre van-e hajtva, és ezt nem lett volna 
szabad, mivel olyan rekord ugye nincs is.

Gábor

2014.02.12. 11:10 keltezéssel, SZIGETI Szabolcs írta:
> Hali!
>
> Milyen oprendszer?
> Unix és társai alatt csak a a SIGKILL és a SIGSTOP signal nem kezelhető le,
> minden más igen. Nekem a SIGSEGV-et kell kezelni, ami defaultban core dump
> és halál, de beállíthatsz más kezelőt.
> Lásd sigaction() hívás.
>
> Szabolcs
>
>
>
>
> 2014. február 12. 10:57 Acs Gabor írta, <levlista at e8e.eu>:
>
>> Sziasztok!
>>
>> A C program ha elszáll szegmentálási hibával, azt meg lehet fogni egy
>> belső hibakezeléssel, vagy úgyse fogja hagyni az oprendszer, és
>> mindenképp kirúgja?
>>
>>
>> --
>> Gábor
>>
>> -----------------------------------------
>>            elektro[-flame|-etc]
>>
> -----------------------------------------
>            elektro[-flame|-etc]
>



More information about the Elektro mailing list