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