Portál AbcLinuxu, 10. května 2025 05:25
Program received signal SIGABRT, Aborted. [Switching to Thread -1213556544 (LWP 7081)] 0xffffe410 in __kernel_vsyscall () (gdb) bt #0 0xffffe410 in __kernel_vsyscall () #1 0xb7ad52ff in raise () from /lib/libc.so.6 #2 0xb7bdeff4 in ?? () from /lib/libc.so.6 #3 0xb7aa98c0 in ?? () #4 0xb7ad6e1d in abort () from /lib/libc.so.6 #5 0xbf80aa80 in ?? () #6 0x00000000 in ?? ()Knihovna Qt, kterou v programu používám, přeložena s -g, samotná aplikace pak s -g3. Verze gdb 6.4, kernel 2.6.16. Zkoušel jsem Googlit a odpověď jsem nenašel, jen zmínku na debian-listu o tom, že někomu to nešlo a někdo jiný se divil proč, protože mu to jde. Díky moc za každý nápad, jak dostat použitelnou backtrace.
ulimit -c unlimited'
, pak to nechte spadnout a pak nechte gdb
, ať si načte výsledný core file (měl by se jmenovat core.
pid, kde pid je PID toho spadlého procesu).
(gdb) core-file core (no debugging symbols found) Using host libthread_db library "/lib/libthread_db.so.1". Core was generated by `./strip hg_lampa.dat'. Program terminated with signal 6, Aborted. #0 0xffffe410 in __kernel_vsyscall () (gdb) bt #0 0xffffe410 in __kernel_vsyscall () #1 0xb7b222ff in ?? ()
-ggdb
a zkontrolovat, jestli se tam ty ladící symboly někde neodstripují. Co o tom spustitelném souboru píše file
?
FEATURES="nostrip"
, což asi má na problém vliv, takže teď znova emerguju s nostrip. Až bude hotovo, dám vědět.
==21473== at 0x435F2FF: raise (in /lib/libc-2.4.so) ==21473== by 0x40B1754: qFatal(char const*, ...) (in /usr/lib/qt4/libQtCore_debug.so.4.1.2) ==21473== by 0x40B0EC3: qt_assert_x(char const*, char const*, char const*, int) (in /usr/lib/qt4/libQtCore_debug.so.4.1.2) ==21473== by 0x804A111: QList{QString}::operator[](int) (qlist.h:369) ==21473== by 0x8049BD9: main (strip.cpp:25)(musel jsem dát {} místo <>, protože abíčko hlásilo, že "Značka QSTRING není povolena!" :) Teď už jen přijít na to, proč moje použití
[]
je blbě. To už naštěstí zvládnu sám.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.