LINUX.ORG.RU

У тебя в плагине наверное тоже «ться» вместо «тся» написано, вот всё и валится.

Pavval ★★★★★
()
Ответ на: комментарий от waker

а запусить lxpanelx из под gdb никак?

а-то я не догадался :)

крашится в плагине, и где - не видно.

dikiy ★★☆☆☆
() автор топика
Ответ на: комментарий от geekless

Так же, как любую другую часть программы. Отладочной печатью во все места.

а вменяемого метода нет чтоли?

dikiy ★★☆☆☆
() автор топика
Ответ на: комментарий от DELIRIUM

Ловить SIGSEGV и дампить backtrace?

как?

dikiy ★★☆☆☆
() автор топика
Ответ на: комментарий от geekless

Это самый вменяемый.

а зачем тогда отлсдчик придумали?

Тебе отладчик что ли нужен? Не Ъ.

да. вылавливать баг руками у меня нет никакого желания :(

dikiy ★★☆☆☆
() автор топика
Ответ на: комментарий от Pavval

У тебя в плагине наверное тоже «ться» вместо «тся» написано, вот всё и валится.

граммар-наци меня уже заипли в этим «тся». Запишите себе пожалуйста: «dikiy может писать сочинения без единой орфографической ошибки. Если они появляются — то просто на „автомате“, и ему впадлу их исправлять».

dikiy ★★☆☆☆
() автор топика
Ответ на: комментарий от geekless

а зачем тогда отлсдчик придумали?

Не знаю. Бесполезное изобретение. Ни разу не пользовался.

сочувствую :)

dikiy ★★☆☆☆
() автор топика
Ответ на: комментарий от SoulThreads

должен. но не показывает:

(gdb) file ~/lxpanelx-read-only/src/lxpanelx
Reading symbols from /home/dikiy/lxpanelx-read-only/src/lxpanelx...done.
(gdb) run --profile LXDE
Starting program: /home/dikiy/lxpanelx-read-only/src/lxpanelx --profile LXDE
warning: Could not load shared library symbols for linux-gate.so.1.
Do you need "set solib-search-path" or "set sysroot"?
Traceback (most recent call last):
  File "/usr/share/gdb/auto-load/usr/lib/libgobject-2.0.so.0.3200.3-gdb.py", line 9, in <module>
    from gobject import register
  File "/usr/share/glib-2.0/gdb/gobject.py", line 3, in <module>
    import gdb.backtrace
ImportError: No module named backtrace
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
[New Thread 0xaffd6b40 (LWP 2550)]
[New Thread 0xaf5ffb40 (LWP 2551)]
[New Thread 0xaedfeb40 (LWP 2552)]
[Thread 0xaf5ffb40 (LWP 2551) exited]
[Thread 0xaffd6b40 (LWP 2550) exited]
[Thread 0xaedfeb40 (LWP 2552) exited]
[New Thread 0xaedfeb40 (LWP 2557)]
[New Thread 0xaf5ffb40 (LWP 2558)]
[Thread 0xaf5ffb40 (LWP 2558) exited]
[Thread 0xaedfeb40 (LWP 2557) exited]

Program received signal SIGSEGV, Segmentation fault.
0xb7fb9cba in ?? ()
(gdb) 
dikiy ★★☆☆☆
() автор топика
Ответ на: комментарий от dikiy

попробуй посмотреть что по адресу 0xb7fb9cba

еще можно попробовать догадаться что случилось по состоянию других потоков. thread apply all bt

waker ★★★★★
()
Ответ на: комментарий от waker

вот что получается:

(gdb) backtrace 
#0  0xb7fb9cba in ?? ()
#1  0xb771742f in ?? () from /lib/libglib-2.0.so.0
#2  0xb7716753 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#3  0xb7716af0 in ?? () from /lib/libglib-2.0.so.0
#4  0xb7716f4b in g_main_loop_run () from /lib/libglib-2.0.so.0
#5  0xb7c8fa5f in gtk_main () from /lib/libgtk-x11-2.0.so.0
#6  0x08069e9a in main (argc=3, argv=0xbfffef34, env=0xbfffef44) at panel.c:2468
(gdb) 
dikiy ★★☆☆☆
() автор топика
Ответ на: комментарий от dikiy

как собирал прогу? похоже, что ты сделал strip. пересобери без стрипа — увидишь функции и номера строк.

waker ★★★★★
()
Ответ на: комментарий от waker

как собирал прогу? похоже, что ты сделал strip. пересобери без стрипа — увидишь функции и номера строк.

не делал я strip. собирал с -ggdb

номера строк же ж выводятся:

#6 0x08069e9a in main (argc=3, argv=0xbfffef34, env=0xbfffef44) at panel.c:2468

dikiy ★★☆☆☆
() автор топика
Ответ на: комментарий от dikiy

да, я это уже увидел, сорри. надо понять кому принадлежит адрес 0xb7fb9cba, и валидный ли он. я внутренностей данной проги не знаю, но похоже что плагин выгрузился, а панелька продолжает его вызывать.

waker ★★★★★
()
Ответ на: комментарий от waker

вообще вероятно!

панелька валится как раз после того, как я загружу свой плагин, а потом выгружу. Панелька поработает секунд 10 еще и вываливается.

dikiy ★★☆☆☆
() автор топика
Ответ на: комментарий от dikiy

панелька вообще запускается, или сразу вылетает? если есть возможность — запусти панельку под gdb, и ДО вылета нажми в gdb ctrl+c. потом посмотри disassemble 0xb7fb9cba — увидишь что за код по этому адресу, сможешь идентифицировать какая функция пропала.

waker ★★★★★
()
Ответ на: комментарий от dikiy

ну вот, ты его выгружаешь — а в glib в каком-то callback адрес запомнился. мож у тебя есть таймер, или что-то типа того, и ты его забыл прибить перед выгрузкой.

waker ★★★★★
()
Ответ на: комментарий от waker

точняк. так и есть наверное.

и ДО вылета нажми в gdb ctrl+c. потом посмотри disassemble 0xb7fb9cba

отлично.

(gdb) disassemble 0xb7fb9cba,+100
Dump of assembler code from 0xb7fb9cba to 0xb7fb9d1e:
   0xb7fb9cba <dclock_update_display+0>:        push   %ebp
   0xb7fb9cbb <dclock_update_display+1>:        mov    %esp,%ebp
dikiy ★★☆☆☆
() автор топика
Последнее исправление: dikiy (всего исправлений: 1)
Ответ на: комментарий от waker

все так и есть. не вызывается деструктор плагина, после того, как я там со строками накосячил :)

dikiy ★★☆☆☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.