Секция .debug_info ELF файла [решено] (Как прочитать данную информацию?)

Модератор: Модераторы разделов

Аватара пользователя
KonishchevDmitry
Сообщения: 92
ОС: Ubuntu

Секция .debug_info ELF файла [решено]

Сообщение KonishchevDmitry »

Доброго времени суток.

Товарищи, подскажите, пожалуйста, как прочитать секцию .debug_info ELF файла? Скачивал с http://dwarfstd.org/ описание стандарта DWARF, но там только общая информация, и понять по этой документации, как же читать секцию .debug_info, по-моему невозможно. (Или я ошибаюсь?)

Не подскажете, есть ли какая-нибудь программа, которая могла бы отобразить секцию .debug_info в более понятном виде? Конкретно интересует следующая информация:
К примеру, я знаю, что у меня есть переменная с именем var1. Мне хочется знать, обычная ли это переменная, или это указатель на переменную. Какого типа эта переменная, и, если она - структура, то также хотелось бы знать всю информацию об этой структуре.

Вот как эта секция выглядит:

Код:

$ readelf a.out -x 27 Hex dump of section '.debug_info': 0x00000000 00000000 01040000 00000002 0000008d ................ 0x00000010 00003b01 00000000 080482a4 080482a4 .............;.. 0x00000020 00005a02 07040000 00720200 0000a100 ......r......Z.. 0x00000030 04000000 6d020702 0000007f 02080100 ...........m.... 0x00000040 03050200 00004202 06010000 005c0207 ..\......B...... 0x00000050 00680205 08000000 4c020504 00746e69 int....L......h. 0x00000060 00000072 02050400 00005102 07080000 .....Q......r... 0x00000070 19010000 00920406 01000000 63020704 ...c............ 0x00000080 0000004f 05080484 08030501 0000008b ............O... 0x00000090 00002701 04000000 42000200 00008300 .......B.....'.. 0x000000a0 672f6464 6c697562 2f646c69 75622f00 ./build/buildd/g 0x000000b0 742d646c 6975622f 342e322d 6362696c libc-2.4/build-t 0x000000c0 73632f63 62696c2d 36383369 2f656572 ree/i386-libc/cs 0x000000d0 2f646c69 75622f00 532e6974 72632f75 u/crti.S./build/ 0x000000e0 342e322d 6362696c 672f6464 6c697562 buildd/glibc-2.4 0x000000f0 62696c67 2f656572 742d646c 6975622f /build-tree/glib 0x00000100 53412055 4e470075 73632f34 2e322d63 c-2.4/csu.GNU AS 0x00000110 00520002 000000ca 80010037 312e3220 2.17.........R. 0x00000120 08048324 0804833d 000000c3 01040000 ........=...$... 0x00000130 36303032 20322e31 2e342043 20554e47 GNU C 4.1.2 2006 0x00000140 65736165 6c657265 72702820 38323930 0928 (prerelease 0x00000150 2d312e31 2e342075 746e7562 55282029 ) (Ubuntu 4.1.1- 0x00000160 74736574 01002935 75746e75 62753331 13ubuntu5)..test 0x00000170 6d65742f 73656c69 665f796d 2f00632e .c./my_files/tem 0x00000180 24000000 83050100 6e69616d 01020070 p...main.......$ 0x00000190 00746e69 03000000 00080483 3d080483 ...=........int. 0x000001a0 0000a001 01007274 705f746e 69040504 ...int_ptr...... 0x000001b0 66040000 00830405 08049518 03050100 ...............f 0x000001c0 01000000 be020100 7274705f 74616f6c loat_ptr........ 0x000001d0 6f6c6603 000000c4 04050804 95140305 .............flo 0x000001e0 000000a0 00020000 00830004 04007461 at.............. 0x000001f0 6975622f 646c6975 622f0000 00f90104 ....../build/bui 0x00000200 75622f34 2e322d63 62696c67 2f64646c ldd/glibc-2.4/bu 0x00000210 696c2d36 3833692f 65657274 2d646c69 ild-tree/i386-li 0x00000220 622f0053 2e6e7472 632f7573 632f6362 bc/csu/crtn.S./b 0x00000230 62696c67 2f64646c 6975622f 646c6975 uild/buildd/glib 0x00000240 65657274 2d646c69 75622f34 2e322d63 c-2.4/build-tree 0x00000250 47007573 632f342e 322d6362 696c672f /glibc-2.4/csu.G 0x00000260 80 01003731 2e322053 4120554e NU AS 2.17...

Буду безмерно благодарен за помощь.
Спасибо сказали:
Andrew S
Сообщения: 225
Статус: экспериментатор
ОС: Conrad-Gentoo

Re: Секция .debug_info ELF файла [решено]

Сообщение Andrew S »

Поищи в исходниках gdb. Там это точно есть
Спасибо сказали:
Аватара пользователя
KonishchevDmitry
Сообщения: 92
ОС: Ubuntu

Re: Секция .debug_info ELF файла [решено]

Сообщение KonishchevDmitry »

Andrew S писал(а):
20.06.2007 18:19
Поищи в исходниках gdb. Там это точно есть
Ух ты, оказывается, эту информацию можно выдрать из файла и при помощи самого gdb. Большое вам спасибо за наводку.
Спасибо сказали:
Andrew S
Сообщения: 225
Статус: экспериментатор
ОС: Conrad-Gentoo

Re: Секция .debug_info ELF файла [решено]

Сообщение Andrew S »

я не сказал, что можно выдрать с помощью gdb. В исходниках gdb в каком-то из .h файлов есть структура, в которой расписан заголовок elf-файла и отладочная информация
Спасибо сказали: