ПРОЧИТАЙТЕ ЭТО!
Символьная машина DBGHELP.DLL
В некоторых утилитах я использую символьную машину DBGHELP.DLL из операционной системы Windows 2000. На самом деле применялась символьная машина IMAGEHLP.DLL, которая была перемещена в DBGHELP.DLL с целью извлечения ее из DLL ядра операционной системы. Чтобы строить исходные коды этой книги, нужно иметь оба файла — DBGHELP.LIB и DBGHELP.H. На сопровождающем компакт-диске находится самая последняя (на момент написания книги) версия Platform SDK.
Нужно установить Platform SDK не только потому, что туда включено много отличных отладочных утилит, но и потому, что там можно также найти и файлы DBGHELP.LIB и DBGHELP.H. Для получения самых последних версий этого SDK нужно перед его установкой выполнить двойной щелчок на компакт-дисках универсальной подписки или на Web-адресе msdn.microsoft.com/developer/sdk.
Для работы символьной машины на Windows NT 4 и Windows 98 следует скопировать DBGHELP.DLL и MSDBI.DLL из Windows 2000 или из каталога < Platform SDK>\Redist\DbgHlp и разместить их в тот же каталог, что и использующую их программу. Например, если вы хотите применять программу CrashFinder для просмотра исходного файла и номера строки, в которой произошел отказ, нужно поместить DBGHELP.DLL в тот же каталог, что и CRASHFINDER.EXE.
Для того чтобы символьная машина DBGHELP.DLL находила ваши символы, помещайте PDB-файлы в тот же каталог, где вы создаете свои двоичные
файлы, либо поместите их в тот же каталог, в котором они уже находятся. Можно также сообщить символьной машине, где находятся PDB-файлы, с помощью специальных переменных окружения. Более подробно об этом можно узнать из MSDN-документации по API-функции SymInitiaiize.
Будьте готовы потратить некоторое время на то, чтобы заставить символьную машину DBGHELP.DLL работать. Понять, что она не работает, можно из того, что вы не получаете информацию о функции, или информация об исходном файле и номерах строк отсутствует в файлах, скомпилированных с отладочными PDB-символами. Работающая символьная машина DBGHELP.DLL даст вам превосходную возможность опробовать приемы отладки, обсуждаемые в этой книге. Я храню самую последнюю и полную информацию о символьной машине DBGHELP.DLL в разделе FAQ моего Web-сайта по адресу www.jprobbins.com. Изучив этот раздел и проводя небольшие отладки, вы должны получить свои отладочные символы.