Короткая копия через источник GDB, где я могу найти документацию о формате, используемом для создания файлов ядра?
Спецификация ELF оставляет формат основного файла открытым, поэтому я предполагаю, что это должно быть частью спецификаций GDB! К сожалению, я не нашел никакой помощи в этом отношении из документации GNU gdb.
Вот то, что я пытаюсь сделать: сопоставить виртуальные адреса с именами функций в исполняемых/библиотеках, которые включали текущий процесс. Для этого я сначала хотел бы выяснить, из основного файла, карту из виртуального адресного пространства на имя исполняемого файла/библиотеки, а затем выкопать в соответствующий файл, чтобы получить символическую информацию.
Теперь "readelf -a core" сообщает мне, что почти все сегменты в основном файле имеют тип "load" - я бы предположил, что это сегменты .text и .bss/.data от всех участвующих файлов, а также сегмент стека. Запрещая эти сегменты нагрузки, есть один сегмент примечаний, но, похоже, он не содержит карту. Итак, как информация о том, какой файл соответствует сегменту, хранится в основном файле? Разделяются ли эти сегменты "загрузки" определенным образом, чтобы включить информацию о файле?