LINUX.ORG.RU

gdb не показывает строку листинга, где прервали по SIGSEGV

 ,


0

1

Здравствуйте

Собрал с -g. Запустил на устройстве через gdbserver :5039 /data/user/i2cdetect

Запустил gdb из android-ndk. Подключился.

(gdb) target remote :5039
Remote debugging using :5039
0x400306e0 in ?? ()
Загрузил symbol-file. Запустил continue:
(gdb) symbol-file tools/i2cdetect
Reading symbols from ~/i2c-tools-android/tools/i2cdetect...done.
(gdb) c
Continuing.
Cannot access memory at address 0x0

Program received signal SIGSEGV, Segmentation fault.
0x00000000 in ?? ()



Последнее исправление: panzerito (всего исправлений: 1)

Так если управление передано на 0 (NULL), то о какой строке может быть речь? bt что-нибудь способен показать?

io ★★
()
Ответ на: комментарий от io
(gdb) bt
#0  0x400436e0 in ?? ()
Cannot access memory at address 0x0
#1  0x00000000 in ?? ()
(gdb) symbol-file tools/i2cdetect
Reading symbols from ~/i2c-tools-android/tools/i2cdetect...done.
(gdb) c
Continuing.
Cannot access memory at address 0x0

Program received signal SIGSEGV, Segmentation fault.
0x00000000 in ?? ()
(gdb) bt
#0  0x00000000 in ?? ()
#1  0x40088f1c in ?? ()
#2  0x40088f1c in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb)
panzerito
() автор топика
Ответ на: комментарий от panzerito

Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(corrupt stack?)

Тебе ж гдб намекаэ.
Скорее всего где-то много написал в буфер на стеке.

Reinar
()
Ответ на: комментарий от panzerito

что-то открывает в /dev/

strace тебе расскажет, что когда открывается. Можешь ещё попробовать собраться с -finstrument-functions и пропечатать стек вызовов руками.

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