[elektro] Szegmentálási hiba
SZIGETI Szabolcs
szigiszabolcs at gmail.com
Wed Feb 12 13:06:37 CET 2014
Hali!
Azt látni fogod, hogy holt állt meg a program, és le tudod kérdezni a
változók aktuális értékét, függvények hívási vermét, szinte mindent.
A debuggoláshoz célszerű, ha van egydebugra fordított binárisod (-g opció a
fordítónak). valamint az optimalizálást célszerű kikapcsolni, mert
meglepődhetsz, ha optimalizált kódot debuggolsz, egészen más lehet benne,
mint amit írtál.
Szabolcs
2014. február 12. 12:47 Acs Gabor írta, <levlista at e8e.eu>:
> Így még azt is meg lehet tudni a gdb-től, hogy pl. melyik változó vagy
> függvény próbált illegális területen dolgozni?
>
> Beágyazott a program.
>
> A signal catch-et nem a hiba megkerülésére akarom használni, hanem a
> felderítésére. Ha sikerülne elérnem, hogy mégis összeállítsanak az ő
> rendszerükből egy elhozható tesztkörnyezetet, berakhatnék pl. a
> hibakezelő rutinba egy minden változó értékét vizsgáló rutint, vagy
> listázót, vagy amit eszembe jut. De ez a core dump analysis is tetszik,
> ki fogom próbálni.
>
> Gábor
>
> 2014.02.12. 11:36 keltezéssel, Lajos Rancz írta:
> > Hi!
> >
> > ööö, ha a cuccod crashel az elég súlyos és core dump is van ha szeretnéd.
> > Ez olyan szempontból jó, hogy vissza tudod tölteni gdb-be és meg tudod
> > nézni offline. PC vagy beágyazott? Ha utóbbi akkor nem olyan könnyű a
> > helyzet.
> > Core dump:
> >
> http://stackoverflow.com/questions/3948615/core-dump-file-not-generated-on-segmentation-fault
> > Betöltés:
> > http://stackoverflow.com/questions/5115613/core-dump-file-analysis
> >
> > Elkapni is elkaphatod a signalt, de a hiba jellege erősen arra utal, hogy
> > elrontottál vmit (más futtatási környezet => más időzítés => multithread
> > hiba). Az ilyet jobb megfixálni mert a signal catch már veszett fejsze
> > nyele...
> >
> > Üdv
> >
> >
> > 2014. február 12. 11:27 Acs Gabor írta, <levlista at e8e.eu>:
> >
> >> Szia, igen, az oprendszer stimt.
> >>
> >> Ilyen súlyos hibák szerencsére nem jönnek (core dump). Kérhetnék egy kis
> >> oktatást, hogy hogyan kell ezt a programban megvalósítani? Szegmentálási
> >> hibát ír ki, amikor kilövi a programomat, ezt milyen signalok
> >> kezelésével lehet megfogni?
> >>
> >> 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]
> >>>
> >> -----------------------------------------
> >> elektro[-flame|-etc]
> >>
> > -----------------------------------------
> > elektro[-flame|-etc]
> >
>
> -----------------------------------------
> elektro[-flame|-etc]
>
More information about the Elektro
mailing list