Вывести имена функций из информации о сбое - PullRequest
0 голосов
/ 29 июня 2011

Моя программа (которая скомпилирована с помощью DMD, компилятора D в Linux) аварийно завершает работу и выдает информацию, например:

./program() [0x807aff8]
./program() [0x807aea9]

Как я могу преобразовать адреса функций в их имена? Я скомпилировал свою программу с -debug и -g, поэтому она должна содержать необходимую отладочную информацию, я просто не знаю, как ее использовать.

(PS: это что-то простое, но я не могу найти, как это сделать. Вероятно, не используя правильные условия поиска).

Ответы [ 2 ]

0 голосов
/ 29 июня 2011

Запустите приложение внутри gdb, затем после сбоя введите bt, чтобы вывести полную обратную трассировку, что обычно намного лучше, чем просто строка, где произошел сбой.

0 голосов
/ 29 июня 2011

Посмотрите на утилиту addr2line

$ gcc -g s.c
$ addr2line 0x400855    
s.c:42
...