gdb & SIGSEV

David Šauer davids na iol.cz
Úterý Únor 2 12:11:16 CET 1999


>>>> "obr" == obr  <obr na nri.cz> píše:

    obr> 	Chtel bych se zeptat, pisu program pod svgalib a
    obr> potrebuji kontrolovat klavesnici ( jestli je klavesa
    obr> stisknuta, nebo ne ) a proto pouzivam prikazy z 
    obr> vgakeyboard.h, bohuzel kdyz dojde k SIGSEV ( tj je tam neco
    obr> spatne ) tak bych potreboval aby se klavesnice uvedla 
    obr> "doporadku" a mohl jsem normalne psat proto jsem
    obr> pouzil nasledujici ( berte to s rezervou pisu po pameti )

[...]

    obr> tohle mi dokaze vratit klavesnici a vyplive core, ale
    obr> kdyz dam v gdb core core tak se nemuzu pomoci
    obr> backtrace vratit a prohlednout si stack.
    obr> pokud tam moje osetreni SIGSEV neni vyplivne to sprave core
    obr> co ukazuje na chybu, ale zase je zprasena klavesnice takze
    obr> nemuzu dat ani Ctrl+Alt+Del, leda tvrdy reset. ( a potom to

Kernely 2.1.X a vyšší mají SAK ...

    obr> se na to kouknout, ale proc resetovat 10 000x za den ? )

Taky jsem něco pod SVGAlib psal a zkušenosti jsou následující:
1.) Nic nepsat pod SVGAlib
2.) Pokud to není možné, mít 2 počítače něčím spojené, aby z jednoho
bylo možné uvést ten druhý do správného stavu
3.) Pokud to není možné, používat v gdb příkaz
display vga_setmode(0)
  Který po každém přerušení programu nažhaví zpátky TEXT ...
Zruší to sice grafický režim, ale lze alepoň zjistit, kde to spadlo a
stav v paměti ...

-- 
* David Sauer, student of Czech Technical University
* electronic mail: davids na iol.cz (mime compatible)


Další informace o konferenci Linux