Подтвердить что ты не робот

Есть ли библиотечный вызов addr2line?

Мне нужно получить информацию, предоставленную addr2line (файл и строка из обратного вызова вызова функции) из программы С++. Есть ли библиотечный вызов, похожий на addr2line?

edit: Я работаю в среде Linux.

Я знаю, что могу напрямую вызвать addr2line, и я знаю, что я могу использовать исходный код addr2line в моей программе (который также лицензирован GPL). Но я думаю, что вызов библиотечной функции, если она существует, более чистая.

edit: Я буду использовать bfd binutils, как это делает addr2line. Что означает bfd?

4b9b3361

Ответ 1

Вы можете попробовать функцию dladdr(). Он использует динамические символы программы, а не информацию для отладки (скомпилируйте программу с помощью gcc -rdynamic).

Кроме того, вы можете проверить библиотеку backtrace или библиотеку более высокого уровня stacktrace.
Не совсем то, что вы просите, но они могут оказаться полезными.