Как разбить на gdk_x_error() используя gdb?

Моя проблема заключается в следующем: приложение (а именно eclipse) падает на моем компьютере и показывает следующее сообщение об ошибке:

The error was 'BadWindow (invalid Window parameter)'.
(Details: serial 16911 error_code 3 request_code 3 minor_code 0)
(Note to programmers: normally, X errors are reported asynchronously;
  that is, you will receive the error a while after causing it.
  To debug your program, run it with the --sync command line
  option to change this behavior. You can then get a meaningful
  backtrace from your debugger if you break on the gdk_x_error() function.)

Теперь я хочу запустить gdb, как указано в сообщении об ошибке. Тем не менее, мне не удалось, и никакой обратной трассировки не отображается.

У меня не так много опыта с отладкой. Вот что я попробовал в любом случае:

1) Активировать -dbgsym репозитории
2) Установите символы eclipse dbg (команда sudo apt-get install ^eclipse-.*dbgsym)
3) Установить libgtk-3-0-dbg, libgtk2.0-0-dbg и все пакеты соответствуют ^libgdk.*dbg
4) Запустите GDB:

(gdb) file /usr/lib/eclipse/eclipse
Reading symbols from /usr/lib/eclipse/eclipse...
Reading symbols from /usr/lib/debug/.build-
id/c2/8e5f4ebdd67159093d8ee6e6daf58ab6fab94c.debug...done.
done.
(gdb) break gdk_x_error
Function "gdk_x_error" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
(gdb) run --sync

[Обновить] Я также попробовал следующее (без успеха):

1) - 3) то же, что и выше
4) Запустите GDB:

(gdb) file /usr/lib/eclipse/eclipse
Reading symbols from /usr/lib/eclipse/eclipse...
Reading symbols from /usr/lib/debug/.build-
id/c2/8e5f4ebdd67159093d8ee6e6daf58ab6fab94c.debug...done.
done.
(gdb) break main
Breakpoint 1 at 0x4010a0: file ../eclipseMain.c, line 101.
(gdb) run --sync
Starting program: /usr/lib/eclipse/eclipse --sync
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Breakpoint 1, main (argc=2, argv=0x7fffffffdf18) at ../eclipseMain.c:101
101 ../eclipseMain.c: file or directory not found.
(gdb) break gdk_x_error
Function "gdk_x_error" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
(gdb) cont

[/Обновить]

Результат:

Когда происходит сбой приложения, вывод такой же, как и выше, дополнительная информация не отображается. Я предполагаю, что мой подход неправильный, или я загрузил неправильные символы отладки. (Потому что там написано "gdk_x_error" не определено.)

[Update2] Когда я печатаю bt после аварии он показывает мне No Stack. [/ Обновление2]

Что я могу сделать, чтобы получить значимый след? Есть идеи?

0 ответов

Другие вопросы по тегам