IDiaSession
Предоставляет контекст запроса для символов отладки.
IDiaSession : IUnknown
Методы
В следующей таблице показаны методы IDiaSession.
Метод |
Описание |
---|---|
Извлекает адрес загрузки для исполняемого файла, который соответствует символам в этом хранилище символов. Это то же значение, которое было передано методу put_loadAddress. |
|
Задает адрес загрузки для исполняемого файла, который соответствует символам в этом хранилище символов. Примечание Важно вызывать этот метод при получении объект IDiaSession и прежде чем начать использование объекта. |
|
Извлекает ссылку на глобальную область. |
|
Возвращает перечислитель для всех таблиц, содержащихся в хранилище символов. |
|
Возвращает перечислитель для всех именованных символов для статических местах. |
|
Извлекает все дочерние элементы указанного родительского идентификатора, соответствующие имени и типа символа. |
|
Извлекает указанный символьный тип, содержащий либо ближайший к указанный адрес. |
|
Извлекает указанный символьный тип, содержащий либо ближайший к, заданный относительный виртуальный адрес (RVA). |
|
Извлекает указанный символьный тип, содержащий либо ближайший к указанный виртуальный адрес (VA). |
|
Получает символ, который содержит указанный маркер метаданных. |
|
Проверяет наличие 2 символов эквивалентны. |
|
Получает символ его уникальным идентификатором. |
|
Извлекает указанный символьный тип, содержащий либо ближайший к относительный виртуальный адрес указанные и смещения. |
|
Извлекает указанный символьный тип, содержащий либо ближайший к указанный виртуальный адрес и смещения. |
|
Извлекает исходный файл compiland и именем. |
|
Извлекает исходный файл идентификатором исходного файла. |
|
Получение числа линии в указанный идентификатор compiland и исходного файла. |
|
Извлекает линии в указанном compiland, содержащих определенный адрес. |
|
Извлекает линии в указанном compiland, которые содержат заданный относительный виртуальный адрес. |
|
Находит число линии для линий, содержащегося в заданном диапазоне адресов. |
|
Извлекает линии в указанном compiland исходным файлом и номеру линии. |
|
Извлекает источник, который был помещен в хранилище символов поставщиками атрибута или другими компонентами процесса компиляции. |
|
Перечисляемая последовательность восстановления отладки потоки данных. |
|
Извлекает перечисление, которое позволяет клиенту выполнять перебор всех кадров встроенного по заданному адресу. |
|
Извлекает перечисление, которое позволяет клиенту выполнять перебор всех кадров относительному адресу встроенного по указанному виртуальному (RVA). |
|
Извлекает перечисление, которое позволяет клиенту выполнять перебор всех кадров встроенного по указанному виртуальному адресу (VA). |
|
Извлекает перечисление, которое позволяет клиенту выполнять перебор число линии всех функций, является встроенной, прямо или косвенно, указанным родительским символом. |
|
Извлекает перечисление, которое позволяет клиенту выполнять перебор число линии всех функций, является встроенной, прямо или косвенно, указанным родительским символом и содержится в указанный диапазон адресов. |
|
Извлекает перечисление, которое позволяет клиенту выполнять перебор число линии всех функций, является встроенной, прямо или косвенно, указанным родительским символом и содержится в заданный относительный виртуальный адрес (RVA). |
|
Извлекает перечисление, которое позволяет клиенту выполнять перебор число линии всех функций, является встроенной, прямо или косвенно, указанным родительским символом и содержится в указанный виртуальный адрес (VA). |
|
Извлекает перечисление, которое позволяет клиенту выполнять перебор число линии всех функций, является встроенной, прямо или косвенно, определенных в файле источника и номер линии. |
|
Извлекает перечисление, которое позволяет клиенту выполнять перебор число линии всех встроенным функциям, которые соответствуют заданному имени. |
|
Возвращает перечисление символов переменной, которая соответствует указанным значением тега в родительский функции заглушки сочетаний клавиш. |
|
Если соответствующее значение тега, этот метод возвращает перечисление символов, содержащихся в заданной родительской функции заглушки сочетаний клавиш в указанном относительного виртуальному адресу. |
|
Возвращает перечисление символов для встроенных кадров, соответствующий указанному имени встроенной функции. |
|
Возвращает перечисление символов для встроенных кадров, соответствующие указанному расположению источников. |
Заметки
Важно вызвать метод IDiaSession::put_loadAddress после создания объекта IDiaSession — и значение, переданное методу put_loadAddress должно быть ненулевым — для всех свойств виртуального адресного пространства (VA) символов для быть доступно. Адрес загрузки поступает от загружаемой программы любой отлаживаемой исполняемому файлу. Например, можно вызвать функцию Win32 GetModuleInformation чтобы получить адрес загрузки для исполняемого файла, заданный дескриптор к исполняемому файлу.
Пример
В этом примере показано, как получить интерфейс IDiaSession как часть общей инициализации пакета SDK для доступа к интерфейсу отладки.
CComPtr<IDiaDataSource> pSource;
ComPtr<IDiaSession> psession;
void InitializeDIA(const char *szFilename)
{
HRESULT hr = CoCreateInstance( CLSID_DiaSource,
NULL,
CLSCTX_INPROC_SERVER,
__uuidof( IDiaDataSource ),
(void **) &pSource);
if (FAILED(hr))
{
Fatal("Could not CoCreate CLSID_DiaSource. Register msdia80.dll." );
}
wchar_t wszFilename[ _MAX_PATH ];
mbstowcs( wszFilename,
szFilename,
sizeof( wszFilename )/sizeof( wszFilename[0] ) );
if ( FAILED( pSource->loadDataFromPdb( wszFilename ) ) )
{
if ( FAILED( pSource->loadDataForExe( wszFilename, NULL, NULL ) ) )
{
Fatal( "loadDataFromPdb/Exe" );
}
}
if ( FAILED( pSource->openSession( &psession ) ) )
{
Fatal( "openSession" );
}
}
Требования
Заголовок: Dia2.h
Библиотеки: diaguids.lib
Библиотеки DLL: msdia80.dll