Dan Lukes wrote on 2019/04/12 13:09:
Normalne bych rekl - pust' to pod gdb (idealne jako single-thread a na
popredi, lighttpd neznam, tak nevim jak to udelat, u Apache jsou to
optiony prikazove radky pri spusteni), vyvolej spadnuti, ono to skonci
an prikazove radce debuggeru a tam si prikazem 'bt' nech ukazat "strom
zanoreni" - tedy pres jake funkce se kod dostal do mista padu.
Lighttpd je single threaded a pustit v popredi jde jednoduse "lighttpd
-D". Tak jsem to delal i s tim ktrace / struss
Ale kdyz ti to pada jen pri tom konkretnim requestu, muzeme si dovolit
hadat, ze problem nastava v mod_status.c a zkusit rovnou zkratku.
Hlavni funkce, ktera generuje vlastni vystup, v mod_status je
mod_status_handle_server_status()
Takze spustit pod debuggerem, idealne znovu jako
single-thread/foreground, dat breakpoint na tuhel funkci a zkusit
vyvolat pad.
No a tady uz se moc nechytam - gdb jsem pouzil asi 2x v zivote a nevim,
jak dat breakpoint na nejakou funkci. Ale zkusim to dohledat.
Nastesti se to ted deje na vyvojovem serveru, tak si tam muzu dovolit s
tim hrat.
Zapomel jsem rict, ze to bude snazsi, kdyz si lighttpd prelozis s
debugovacimi informacemi a debugger bud emit pristup i ke zdrojakum -
pak ti to bude pruchod ukazovat "po radcich" zdrojoveho kodu.
Tady se obavam, ze by to mohlo prestat segfaultovat, tak jako tomu bylo
predtim, kdyz jsem to preinstaloval, takze to zkusim zatim bez te upravy.
Diky
Mirek
--
FreeBSD mailing list (users-l@freebsd.cz)
http://www.freebsd.cz/listserv/listinfo/users-l