IDiaSession
Предоставляет контекст запроса для символов отладки.
Синтаксис
IDiaSession : IUnknown
Методика
В следующей таблице показаны методы IDiaSession
.
Метод | Описание |
---|---|
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). Адрес загрузки поступает из любой программы, загружаемой исполняемым файлом, отлаживаемым. Например, можно вызвать функцию Win32 GetModuleInformation
, чтобы получить адрес нагрузки для исполняемого файла, учитывая дескриптор исполняемого файла.
Пример
В этом примере показано, как получить интерфейс 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
См. также
- интерфейсов (пакет SDK для доступа к интерфейсу отладки)
- Обзор
- Exe
IDiaAddressMap
IDiaDataSource
IDiaDataSource::openSession
IDiaSymbol::findChildren
- запросе . Файл PDB