ICorDebugModule3::CreateReaderForInMemorySymbols Method

Creates a debug symbol reader for a dynamic module.

Syntax

HRESULT CreateReaderForInMemorySymbols (  
      [in] REFIID riid,  
      [out][iid_is(riid)] void **    ppObj  

Parameters

riid
[in] The IID of the COM interface to return. Typically, this is an ISymUnmanagedReader Interface.

ppObj
[out] Pointer to a pointer to the returned interface.

Return Value

S_OK
Successfully created the reader.

CORDBG_E_MODULE_LOADED_FROM_DISK
The module is not an in-memory or dynamic module.

CORDBG_E_SYMBOLS_NOT_AVAILABLE
Symbols have not been supplied by the application or are not yet available.

E_FAIL (or other E_ return codes)
Unable to create the reader.

Remarks

This method can also be used to create a symbol reader object for in-memory (non-dynamic) modules, but only after the symbols are first available (indicated by the UpdateModuleSymbols Method callback).

This method returns a new reader instance every time it is called (like CComPtrBase::CoCreateInstance). Therefore, the debugger should cache the result and request a new instance only when the underlying data may have changed (that is, when a LoadClass Method callback is received).

Dynamic modules do not have any symbols available until the first type has been loaded (as indicated by the LoadClass Method callback).

Requirements

Platforms: See System Requirements.

Header: CorDebug.idl, CorDebug.h

Library: CorGuids.lib

.NET Framework Versions: 4.5, 4, 3.5 SP1

See also