Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Общие сведения о символах, включая использование файлов символов и серверов символов, см. в разделе "Символы".
Имена символов и расположения
Чтобы найти расположение символа, заданного его именем, используйте GetOffsetByName. Дополнительные сведения о синтаксисе, используемом для указания имен символов, см. в разделе "Синтаксис символов" и "Сопоставление символов".
Если точное имя символа не известно или несколько символов имеют одинаковое имя, StartSymbolMatch начнет поиск символов, имена которых соответствуют заданному шаблону. Дополнительные сведения о синтаксисе см. в разделе "Синтаксис подстановочных знаков строки".
Чтобы найти имя символа, заданного его расположением, используйте GetNameByOffset. Чтобы найти имена символов в модуле вблизи заданного расположения, используйте GetNearNamebyOffset.
Заметка По возможности укажите символ с именем модуля, например mymodule!main. В противном случае, если символ не существует (например, из-за типографической ошибки), подсистеме придется загружать и искать символы для каждого модуля; это может быть медленный процесс, особенно для отладки в режиме ядра. Если имя символа было квалифицировано с именем модуля, обработчику потребуется выполнить поиск только по символам этого модуля.
Символ уникально идентифицируется с помощью структуры DEBUG_MODULE_AND_ID. Эта структура возвращается методами GetSymbolEntriesByName и GetSymbolEntriesByOffset, которые ищут символы на основе их имени и расположения соответственно.
Метод GetSymbolEntryInformation возвращает описание символа с помощью структуры DEBUG_SYMBOL_ENTRY .
Чтобы найти смещение поля в структуре, используйте GetFieldOffset. Чтобы найти имя поля, заданного его индексом в структуре, используйте GetFieldName. Чтобы найти имя константы перечисления с заданным значением, используйте GetConstantName.
Метод GetSymbolInformation может выполнять несколько запросов для получения сведений о символах.
Параметры символов
Ряд параметров определяет, как загружаются и выгружаются символы. Описание этих параметров см. в разделе "Параметры символов".
Параметры символов можно включить с помощью AddSymbolOptions и отключить с помощью RemoveSymbolOptions.
GetSymbolOptions возвращает текущие параметры символов. Чтобы задать все параметры символов одновременно, используйте SetSymbolOptions.
Перезагрузить символы
После загрузки файлов символов подсистема сохраняет сведения о символах во внутреннем кэше. Чтобы очистить этот кэш, используйте перезагрузку. Эти символы должны быть загружены снова или позже.
Искусственные символы
Искусственные символы — это способ пометить произвольный адрес для простой ссылки. Искусственные символы можно создавать в любом существующем модуле. Метод AddSyntheticSymbol создает новый искусственный символ. Искусственные символы можно удалить с помощью RemoveSyntheticSymbol. Перезагрузив символы для модуля, удаляются все синтетические символы, связанные с этим модулем.
Путь к символам
Чтобы добавить каталог или сервер символов в путь к символу, используйте метод AddSymbolPath. Весь путь к символам возвращается GetSymbolPath и может быть изменён с помощью SetSymbolPath.