На какой строке запускается программа с информацией обратного следа?
Есть моя обратная информация:
======= Backtrace: =========
/lib64/libc.so.6(+0x7bc07)[0x7f959bba4c07]
/lib64/libc.so.6(+0x7d23a)[0x7f959bba623a]
/lib64/libspice-server.so.1(+0x2108e)[0x7f959c8d508e]
/lib64/libspice-server.so.1(+0x227a3)[0x7f959c8d67a3]
/usr/libexec/qemu-kvm(qemu_iohandler_poll+0xc6)[0x7f95a10571e6]
/usr/libexec/qemu-kvm(main_loop_wait+0x188)[0x7f95a105b748]
/usr/libexec/qemu-kvm(main+0x1240)[0x7f95a0f7ce30]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x7f959bb4aaf5]
/usr/libexec/qemu-kvm(+0xb2ced)[0x7f95a0f80ced]
Я создаю экземпляр kvm со специями, но он падает, и я получил это сообщение из журнала.
Теперь я хочу знать, на какой линии я сделал это сбой. Но нет таблицы ссылок с символами /lib64/libspice-server.so.1
,
Я могу получить смещение адреса с +0x2108e
, Есть ли какой-нибудь способ выяснить с помощью строки, что она вылетела?
Кстати, какой-нибудь учебник по отладке библиотеки?
Благодарю.
1 ответ
Есть ли какой-нибудь способ выяснить с помощью строки, что она потерпела крах?
Ваш libc.so.6
а также libspice-server.so.1
(по-видимому) полностью раздели.
Вы хотите установить debuginfo
пакеты для обеих библиотек, а затем использовать addr2line
чтобы преобразовать адреса в символ / файл / строку, вот так:
addr2line -fe /lib64/libc.so.6 0x7bc07 0x7d23a