Analyza multithread core

Jirka Kosina jikos na jikos.cz
Středa Únor 19 10:55:10 CET 2003


On Wed, 19 Feb 2003, Jan Safranek wrote:

> je nejaky zpusob, jak na RedHat 8 rozume vyrobit coredump
> vicevlaknoveho procesu a ten core pak nejak analyzovat? Zajem mam
> predevsim o vypis stack frames vsech threadu - ktera funkce byla
> volana + prip. kdyby to slo tak i lokalni promenne na jednotlivych
> urovnich.
> Podotykam, ze me zajima reseni pokud mozno BEZ patchu jadra - ta moje
> aplikace MUSI bezet na default. instalaci Red Hat 8.0 + prip.
> balicky, jadro musi zustat defaultni.

Bez patchu jadra to neni skutecne asi trivialni zalezitost, protoze
podpora pro multithreaded coredump je od Ingo Molnara implementovana v
2.5, redhat se ji tusim snazi ve svem jadru v RawHide backportovat do 2.4,
ale jsou s tim nejake problemy.
Ovsem ten vas pozadavek zase az tak moc nechapu - core prece potrebujete
pouze pro debugovani, tak na to si muzete kdekoliv patchnout jadro a ladit
to na tomto patchnutem jadre, a pro ostry provoz pak pouzivat klidne
default jadro z RH.

Nejaky experimentalni patch se mi tu nekde vali (kdo je autor uz nevim), a
vicemene funguje, nicmene par chybek tam je - je fakt, ze ta teoreticky
existuje deadlock, ktery neni trivialni odstranit (nastesti je velice
nepravdepodobne, ze nastane, ale stejne to neni ono :) )

Dalsi problem s touhle implementaci je ten, ze kdyz se dumpuje core
vicevlaknove aplikace s _hodne_ thready, tak se muze stat, ze ne vsechny
budou v core zohledneny, protoze proces ktery dumpuje core nestihne
suspendovat nektere thready driv, nez tyto dobehnou, takze ty pak nebudou
v core zohledneny :(
Inguv patch v 2.5 kernelu pro multithreaded core timto problemem netrpi,
ale jak jsem jiz napsal - jeste IMHO neni backportovany uplne do 2.4, ale
muzete zkusit to jadro z RawHide. Nejaky ten patek jsem to nezkoumal,
mozna se to od te doby zmenilo.

Patch pro 2.4 s vyse zminenymi problemy Vam muzu poslat.

--
JiKos.


Další informace o konferenci Linux