У меня 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
для получения подробной информации о том, сколько памяти использует файл или модуль (вместо глобального числа, сообщаемого инструментом «размер»).
malloc
вообще не существует. - person Bart   schedule 04.08.2011