Я печатаю стеки из своего кода c с помощью backtrace_symbols() (следующие инструкции на http://www.gnu.org/software/libc/manual/html_node/Backtraces.html). Тем не менее, я могу получить только адреса кадров стека в динамической библиотеке, хотя я создал библиотеку, используя -g -rdynamic.Как найти имя funcation по адресу в библиотеке
Теперь у меня есть работающий процесс, и у меня есть библиотека, как узнать, к какому методу соответствует каждый адрес кадра? Заранее спасибо.
Это 64-разрядный Linux.
Пример моей распечатке выглядит следующим образом:
Obtained 9 stack frames.
/tmp/libexample.so [0x2aaabaae9771]
/tmp/libexample.so [0x2aaabaae9828]
/tmp/libexample.so [0x2aaabaaa8138]
/tmp/libexample.so [0x2aaabaab2402]
/tmp/libexample.so [0x2aaabaabd029]
/tmp/libexample.so [0x2aaabaa1e23a]
/tmp/libexample.so [0x2aaabaa24ded]
/lib64/libpthread.so.0 [0x30b700677d]
Вы компилируете с включенными символами отладки? '-g' с GCC и Clang – GWW
Да. С -g. Просто добавил, что с помощью редактирования. – May