Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Общие сведения о символах, включая использование файлов символов и серверов символов, см. в разделе "Символы".
Имена символов и расположения
Чтобы найти расположение символа, заданного его именем, используйте 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.