[elektro] Szegmentálási hiba

Lajos Rancz lajos.rancz at gmail.com
Wed Feb 12 12:58:44 CET 2014


Hi!

Elvileg igen, de ARM-on még nem próbáltam. Ami ott (majdnem) biztos menni
fog az az, hogy a signal handler-be teszel egy
backtrace<http://man7.org/linux/man-pages/man3/backtrace.3.html>
hívást
és az eredményét kiprinteled egy fájlba. Így fogsz kapni egy callstacket
amit vissza tudsz ellenőrizni a map file alapján. Így kiderül, hogy melyik
függvényben van a gond.

Üdv


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