Разделы .debug_ * содержат данные в формате, описанном стандартом отладки DWARF.В стандарте есть веб-сайт, на котором можно загрузить стандартную спецификацию: http://www.dwarfstd.org/
Для анализа сохраненного формата (который сильно сжат для экономии места) доступны библиотеки, например, libdwarf, доступный здесь: http://reality.sgiweb.org/davea/dwarf.html
Короче говоря, различные разделы содержат различные аспекты исходной программы и то, как они отображаются на архитектуру целевой машины (код и адреса данных).Информация, которая обычно теряется в процессе компиляции, представлена деревом записей отладочной информации, которые представляют собой структуры с идентифицирующим тегом и различными атрибутами.Например, DIE для объявления переменной представлен DIE с тегом DW_TAG_variable
и может иметь такие атрибуты, как: имя, файл / строка / столбец, в котором он объявлен, место в памяти в объектном файле и т. Д.
Разделы .debug_info и .debug_abbrev вместе представляют дерево записей отладочной информации.Раздел .debug_line содержит информацию, которая позволяет отладчику восстановить полную строку исходного кода, отображающую таблицу, по адресу кода объекта (и содержит другую информацию, например, является ли строка исходного кода началом оператора и началомбазовый блок и т. д.).
Другие разделы содержат информацию о кадре вызова и таблицы ускоренного поиска для быстрого поиска переменных DIE и типов по имени и многое другое.Это все описано в стандарте.