IDiaSession
Предоставляет контекст запроса для символов отладки.
Синтаксис
IDiaSession : IUnknown
Методы
В следующей таблице показаны методы IDiaSession
.
Метод | Description |
---|---|
IDiaSession::get_loadAddress |
Извлекает адрес загрузки исполняемого файла, соответствующего символам в этом хранилище символов. Это то же значение, которое было передано методу put_loadAddress . |
IDiaSession::put_loadAddress |
Задает адрес загрузки исполняемого файла, соответствующий символам в этом хранилище символов. Примечание. Важно вызвать этот метод при получении IDiaSession объекта и перед началом использования объекта. |
IDiaSession::get_globalScope |
Извлекает ссылку на глобальную область. |
IDiaSession::getEnumTables |
Извлекает перечислитель для всех таблиц, содержащихся в хранилище символов. |
IDiaSession::getSymbolsByAddr |
Извлекает перечислитель для всех именованных символов в статических расположениях. |
IDiaSession::findChildren |
Извлекает все дочерние элементы указанного родительского идентификатора, соответствующего имени и типу символов. |
IDiaSession::findChildrenEx |
Извлекает все дочерние элементы указанного родительского идентификатора, соответствующего имени и типу символов, включая оптимизированные локальные значения. |
IDiaSession::findChildrenExByAddr |
Извлекает все дочерние элементы указанного родительского идентификатора, соответствующего типу имени и символа, включая оптимизированные локальные значения, содержащие или ближайшие к указанному адресу. |
IDiaSession::findChildrenExByVA |
Извлекает все дочерние элементы указанного родительского идентификатора, соответствующего типу имени и символа, включая оптимизированные локальные значения, содержащие или ближайшие к ним, указанный виртуальный адрес (VA). |
IDiaSession::findChildrenExByRVA |
Извлекает все дочерние элементы указанного родительского идентификатора, соответствующего имени и типу символов, включая оптимизированные локальные значения, содержащие или ближайшие к ним относительные виртуальные адреса (RVA). |
IDiaSession::findSymbolByAddr |
Извлекает указанный тип символа, содержащий или ближайший к указанному адресу. |
IDiaSession::findSymbolByRVA |
Извлекает указанный тип символа, содержащий или ближайший к указанному относительному виртуальному адресу (RVA). |
IDiaSession::findSymbolByVA |
Извлекает указанный тип символа, содержащий или ближайший к указанному виртуальному адресу (VA). |
IDiaSession::findSymbolByToken |
Извлекает символ, содержащий указанный маркер метаданных. |
IDiaSession::symsAreEquiv |
Проверяет, эквивалентны ли два символа. |
IDiaSession::symbolById |
Извлекает символ по уникальному идентификатору. |
IDiaSession::findSymbolByRVAEx |
Извлекает указанный тип символа, содержащий или ближайший, указанный относительный виртуальный адрес и смещение. |
IDiaSession::findSymbolByVAEx |
Извлекает указанный тип символа, содержащий или ближайший к указанному виртуальному адресу и смещение. |
IDiaSession::findFile |
Извлекает исходный файл по компилятору и имени. |
IDiaSession::findFileById |
Извлекает исходный файл по идентификатору исходного файла. |
IDiaSession::findLines |
Извлекает номера строк в пределах указанного компилятора и идентификатора исходного файла. |
IDiaSession::findLinesByAddr |
Извлекает строки в указанном компиляторе, который содержит указанный адрес. |
IDiaSession::findLinesByRVA |
Извлекает строки в указанном компиляторе, который содержит указанный относительный виртуальный адрес. |
IDiaSession::findLinesByVA |
Находит сведения о номере строки для строк, содержащихся в указанном диапазоне адресов. |
IDiaSession::findLinesByLinenum |
Извлекает строки в указанном компиляторе по исходному файлу и номеру строки. |
IDiaSession::findInjectedSource |
Извлекает источник, который был помещен в хранилище символов поставщиками атрибутов или другими компонентами процесса компиляции. |
IDiaSession::getEnumDebugStreams |
Извлекает перечисленную последовательность отладочных потоков данных. |
IDiaSession::findInlineFramesByAddr |
Извлекает перечисление, позволяющее клиенту выполнять итерацию по всем встроенным кадрам в заданном адресе. |
IDiaSession::findInlineFramesByRVA |
Извлекает перечисление, позволяющее клиенту выполнять итерацию по всем встроенным кадрам на указанном относительном виртуальном адресе (RVA). |
IDiaSession::findInlineFramesByVA |
Извлекает перечисление, позволяющее клиенту выполнять итерацию по всем встроенным кадрам на указанном виртуальном адресе (VA). |
IDiaSession::findInlineeLines |
Извлекает перечисление, позволяющее клиенту выполнять итерацию по номеру строки всех функций, которые встраиваются напрямую или косвенно по указанному родительскому символу. |
IDiaSession::findInlineeLinesByAddr |
Извлекает перечисление, позволяющее клиенту выполнять итерацию по номеру строки всех функций, которые встраиваются напрямую или косвенно, заданным родительским символом и содержатся в указанном диапазоне адресов. |
IDiaSession::findInlineeLinesByRVA |
Извлекает перечисление, позволяющее клиенту выполнять итерацию по номеру строки всех функций, которые встраиваются напрямую или косвенно, указанным родительским символом и содержатся в указанном относительном виртуальном адресе (RVA). |
IDiaSession::findInlineeLinesByVA |
Извлекает перечисление, позволяющее клиенту выполнять итерацию по номеру строки всех функций, которые встраиваются напрямую или косвенно, указанным родительским символом и содержатся в указанном виртуальном адресе (VA). |
IDiaSession::findInlineeLinesByLinenum |
Извлекает перечисление, позволяющее клиенту выполнять итерацию по номеру строки всех функций, которые встраиваются напрямую или косвенно в указанный исходный файл и номер строки. |
IDiaSession::findInlineesByName |
Извлекает перечисление, позволяющее клиенту выполнять итерацию по номеру строки всех встроенных функций, которые соответствуют указанному имени. |
IDiaSession::findAcceleratorInlineesByLinenum |
Возвращает перечисление символов для встроенных кадров, соответствующих указанному исходному расположению. |
IDiaSession::findSymbolsForAcceleratorPointerTag |
Возвращает перечисление символов для переменной, которая соответствует указанному значению тега в родительской функции заглушки акселератора. |
IDiaSession::findSymbolsByRVAForAcceleratorPointerTag |
Учитывая соответствующее значение тега, этот метод возвращает перечисление символов, содержащихся в указанной функции заглушки родительского ускорителя по указанному относительному виртуальному адресу. |
IDiaSession::findAcceleratorInlineesByName |
Возвращает перечисление символов для встроенных кадров, соответствующих указанному имени встроенной функции. |
IDiaSession::addressForVA |
Возвращает эквивалентный адрес для указанного виртуального адреса (VA). |
IDiaSession::addressForRVA |
Возвращает эквивалентный адрес для указанного относительного виртуального адреса (RVA). |
IDiaSession::findILOffsetsByAddr |
Извлекает перечисление, позволяющее клиенту выполнять итерацию по смещениям MSIL в указанном диапазоне адресов. |
IDiaSession::findILOffsetsByRVA |
Извлекает перечисление, позволяющее клиенту выполнять итерацию по смещениям MSIL в пределах указанного относительного диапазона виртуального адреса (RVA). |
IDiaSession::findILOffsetsByVA |
Извлекает перечисление, позволяющее клиенту выполнять итерацию по смещениям MSIL в заданном диапазоне виртуальных адресов (VA). |
IDiaSession::findInputAssemblyFiles |
Извлекает перечисление, позволяющее клиенту выполнять итерацию с помощью файлов сборок .NET Native. |
IDiaSession::findInputAssembly |
Извлекает файл входной сборки .NET Native по индексу. |
IDiaSession::findInputAssemblyById |
Извлекает входной файл сборки .NET Native по уникальному идентификатору. |
IDiaSession::getFuncMDTokenMapSize |
Извлекает размер в байтах карты маркеров метаданных .NET Native. |
IDiaSession::getFuncMDTokenMap |
Извлекает содержимое карты маркеров метаданных .NET Native. |
IDiaSession::getTypeMDTokenMapSize |
Извлекает размер в байтах карты маркеров типа метаданных .NET Native. |
IDiaSession::getTypeMDTokenMap |
Извлекает содержимое карты маркеров типа метаданных .NET Native. |
IDiaSession::getNumberOfFunctionFragments_VA |
Извлекает количество дискозначных фрагментов для функции по указанному виртуальному адресу (VA). |
IDiaSession::getNumberOfFunctionFragments_RVA |
Извлекает количество дискозначных фрагментов для функции по указанному относительному виртуальному адресу (RVA). |
IDiaSession::getFunctionFragments_VA |
Извлекает адреса и длину дисконимых фрагментов для функции по указанному виртуальному адресу (VA). |
IDiaSession::getFunctionFragments_RVA |
Извлекает адреса и длину дискотипных фрагментов для функции по указанному относительному виртуальному адресу (RVA). |
IDiaSession::getExports |
Извлекает перечислитель для всех экспортированных символов. |
IDiaSession::getHeapAllocationSites |
Извлекает перечислитель для всех SymTagHeapAllocationSite символов. |
IDiaSession::findInputAssemblyFile |
Извлекает файл входной сборки .NET Native, который является родительским элементом указанного символа. |
Замечания
Важно вызвать IDiaSession::put_loadAddress
метод после создания IDiaSession
объекта , а значение, переданное put_loadAddress
методу, должно быть ненулевым , для доступа к любым свойствам виртуальных адресов (VA) символов. Адрес загрузки поступает из любой программы, загружаемой исполняемым файлом, отлаживаемым. Например, можно вызвать функцию GetModuleInformation
Win32, чтобы получить адрес нагрузки для исполняемого файла, учитывая дескриптор исполняемого файла.
Пример
В этом примере показано, как получить IDiaSession
интерфейс в рамках общего инициализации пакета SDK для доступа к интерфейсу отладки (DIA).
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