2010-09-21 3 views
0

PointerToSymbolTable:О исполняемом с отладочной информацией в окнах

файлового смещение символ COFF таблицы, или ноль, если таблица не символа COFF присутствует. Это 0 для PE-образа файлов, так как информация отладки обесценилась.

Почему он говорит, что отладочная информация обесценивается для изображения PE? AFIAK, исполняемые файлы в Windows могут также содержать отладочную информацию, не так ли?

ответ

0

Заметьте, что вы читаете это, но this page в MSDN не имеет такой оговорки.

Необходимо помнить, что MSDN отличается спецификой Microsoft. И в Microsoft-мире информация отладки coff давно заменена файлами .PDB, поэтому вы почти никогда не получаете символы внутри исполняемый образ при использовании компилятора Microsoft (и, следовательно, PointerToSymbolTable всегда будет 0).

Есть еще программы, которые используют встроенные данные COFF (например, MinGW, я считаю).

+0

Какое название структуры для отладочных символов в PE? – COMer

1

Как сказано в сообщении, отладочная информация обесценивается для изображения PE, символы отладки больше не встроены в PE. Он скорее сохраняется в файле .PDB, который содержит информацию об отладке. Формат этого файла недокументирован, поэтому только вы можете извлечь информацию из этого файла, вызывая API в DbgHelp.dll.