как поместить символы отладки в ar файлы - PullRequest
0 голосов
/ 19 марта 2012

как поместить символы отладки в ar файлы

когда я запускаю gdb, набираю символьный файл somelib.a, который говорит 'somelib.a': не может прочитать символы: Формат файла не распознан.

это сработало, однако, для файла .o, который составлял файл .a

Я скомпилировал с помощью gcc -c -g somefile.c

1 Ответ

1 голос
/ 19 марта 2012

Статические библиотеки не являются файлами времени выполнения и поэтому не интересны для отладчика.Отладочная информация обычно извлекалась бы из них и вставлялась в конечный двоичный файл во время ссылки.

Если вы подумаете об этом, невозможно (или не имеет смысла) загружать символы из нескольких несвязанных файлов .o либоВсе они имеют одинаковый базовый адрес (обычно ноль), и это не поможет.Файл .a содержит несколько несвязанных файлов .o и будет иметь точно такую ​​же проблему.

Если вы чередуете свой двоичный файл, вы должны сохранить соответствующий файл отладки для этого (см. strip --only-keep-debug), а небиблиотеки, которые вошли в это.Только исполняемые двоичные файлы и разделяемые библиотеки имеют отладочную информацию со значимыми адресами в ней.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...