Почему addr2line работает только для функций

У меня есть addr2line , работающая с адресами функций:

$ nm -S executable | grep main
08048742 000000a0 T main
$ addr2line -e executable 08048742
/home/blablabla/src/main.c:80

К сожалению, это работает, только если я предоставлю адрес функция, при передаче адреса символа данных (например, адреса таблицы crc) она никогда не может разрешить номер файла / строки:

$ nm -S executable | grep tableCRC
080491bc 00000200 r tableCRC
$ addr2line -e executable 080491bc
??:0

Я предполагаю, что такая отладочная информация просто не включается в данные, потому что это функция, вероятно, предназначена для анализа обратных трассировок, но, может быть, есть параметр компилятора / компоновщика, чтобы принудительно это сделать?

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

6
задан jkoshy 3 August 2011 в 13:15
поделиться