LINUX.ORG.RU

Lazarus, GDB и отладочная информация


0

1

Добрый день.

Второй день пытаюсь получить имена функций в run-time (для логов). Выяснил, что стандартный STABS не работает в 64-битных системах, а из «прогрессивного» dwarf стандартная функция FreePascal GetLineInfo не может добыть информацию об имени функции. Однако отладчик GDB замечательно показывает все эти имена. Более того, он их показывает, даже если в проекте не указана опция «включать отладочную информацию для GDB», что совсем уже мистика. При этом сам Lazarus IDE отлаживать проект не может, точки останова игнорирует и т.д. А вот если загрузить получившийся файл в GDB «вручную», то он замечательно и символы видит, и stack trace выводит с именами функций... Вопрос: КАК? И могу ли я в собственной же программе таки получить имя функции по её адресу (больше мне пока ничего не надо)?

Вообще-то соответствие имени символа и адресса находится в заголовке elf, dwarf тут не при чем, без dwarf пути к файлу не будет и информации о номерах строк. Можешь проверить с помошью nm, readelf -s, только strip не делай. :)

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