Jacekalex Guru
Joined: 17 Sep 2009 Posts: 554
|
Posted: Fri Apr 01, 2011 8:32 am Post subject: [GDB]Debugowanie rekursywne programu i bibliotek |
|
|
Witam
Przykładowy problem wygląda następująco.
Firefox-4 -działa elegancko, dopóki nie trafi na plik, odtwarzany przez wtyczkę, obsługiwaną przez plugin-container.
Problem występuje we wszystkich wersjach FF4 wydanych po beta13,włącznie z FF 4.2pre1.
Kiedy na nią trafi, plugin-container wiesza całą przeglądarkę na około minutę, po czym pokazuje crash flasha, wtyczki vlc czy javy.
Wygląda na to, że tylko u mnie występuje ten error, i że ma związek z kompilatorem hardened,
i jest niezależne od obecności grsecurity w kernelu.
Jednak np FIrefox 4.0-beta13 i obecnie 3.6.16 działają normalnie w identycznych warunkach.
Samego firefoxa mogę potraktować choćby strace'm czy gdb, ale jak debugować plugin-container - kiedy jest odpalany wyłącznie przez firefoxa?
Bo chciałbym dowiedzieć się, na jakiej dokładnie funkcji czy bibliotece sypie się plugin-container, żeby mieć materiał na bugzillę, lub samodzielne rękodzieło.
Pytanie dotyczy w tym przypadku Firefoxa4, ale problem dotyczy bardziej ogólnego zagadnienia.
EDYTA:
W przypadku Firefoxa4, konsola błędów wiesza się razem z programem (żadnego błędu nie pokazuje), natomiast strace pokazuje zatrzymanie na takim wywołaniu:
Code: | gettimeofday({1301647000, 161458}, NULL) = 0
gettimeofday({1301647000, 161527}, NULL) = 0
futex(0x1822d1f8, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x1822d1f4, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1
write(21, "\0", 1) = 1
time(NULL) = 1301647000
write(21, "\0", 1) = 1
gettimeofday({1301647000, 169181}, NULL) = 0
gettimeofday({1301647000, 169262}, NULL) = 0
clock_gettime(CLOCK_REALTIME, {1301647000, 169331683}) = 0
futex(0x1a835b80, FUTEX_WAIT_PRIVATE, 1, {29, 999930317} |
EDYTA2:
Wszelkie znaki wskazują na to, że Firefox4 >beta13 i Thunderbird - 3.1.* nie lubią się z kompilatorem gcc-4.5.1-r1.
Wszelkie sugestie mile widziane
Pozdrawiam
|
|