Odchyceni SIGSEGV

Michal Krause michal na krause.cz
Pátek Leden 19 18:11:12 CET 2001


On 19/01/2001, Ing. Pavel PaJaSoft Janousek wrote:

> > vetsine platforem lze v handleru volat napr. pthread_self(). Jaky na
> > to maji nazor zkusenejsi kolegove programatori? :)
> 
> 	Coz ovsem znamena pouziti nejake implementacni knihovny vlaken...

O to mi vice mene jde. U normalnich aplikaci je tohle vice mene
zbytecne, protoze z core lze poznat, co a kde se vlastne stalo. U MT
aplikaci je core na dve veci a gdb jakbysmet.

> 	Prakticke zkusenosti s odchytem SIGSEGV nemam, ale domnivam se,
> 	ze u signalu obecne zadne relevantnejsi informace nez ze proste
> 	nejaky signal vznikl zjistit nelze a nikdy jsem na zadna jina
> 	zajimava relevantni volani ani dle POSIX ani dle stare
> 	implementace signalu nenasel a neslysel.

Asi to opravdu nejde. Ja si s tim tady zatim hraju a jenom tak pro srandu
jsem zkusil pomoci knihovny libtrace vypsat z handleru backtrace. V
pripade signle-thread aplikace to funguje (je videt, kde se program
nachazel pred vyvolanim signalu), zatimco u MT to nefunguje
(multithreadove aplikace zkratka uspesne vzdoruji vsem pokusum o ladeni
:) Nicmene pthread_self() zda se volat jde a vypada to, ze funguje jak
ma (pri vsemoznych pokusech vzdy vratil ID threadu, ktery SIGSEGV
zapricinil).

> 	Na druhou stranu mi obecne nepripada tak hrozne odchyceni tohoto
> 	signalu, vim, cert vi co vsechno je prepsano, ale staci nam CRC
> 	kod a vime, ktera data nam zustala korektne zachovana... na
> 	miste je vsak otazka efektivity takoveho systemu.

Data mohou byt v poradku, ale treba navratove adresy ne. Ja bych to
neriskoval. Muj nazor je ten, ze pri SIGSEGV je v programu vetsinou
chyba, ktera nema byt obchazena, ale resena, ovsem to je prave podstatou
problemu. Puvodne jsem totiz chtel SIGSEGV chytat kvuli ladeni MT
aplikaci, ne pro pouziti v ostrem provozu.

S pozdravem
-- 
Michal Krause                                                       /\
ICQ: 7665279            Informace (nejenom) ze sveta Linuxu      /\/  \
email: michal na krause.cz _______ http://www.root.cz/ _______ NAVRCHOLU.cz

Vseci by chceli byt van Goghmi, ale odrezat si ucho ani jeden.
                                                  J. Raz ve filmu Rabaka


Další informace o konferenci Linux