Freigeben über


IDebugComPlusSymbolProvider::UpdateSymbols

Updates the debug symbols in memory with those from the specified data stream.

HRESULT UpdateSymbols (
   ULONG32  ulAppDomainID,
   GUID     guidModule,
   IStream* pUpdateStream
);
int UpdateSymbols (
   uint    ulAppDomainID,
   Guid    guidModule,
   IStream pUpdateStream
);

Parameters

  • ulAppDomainID
    [in] Identifier of the application domain.

  • guidModule
    [in] Unique identifier of the module.

  • pUpdateStream
    [in] Data stream that contains the updated debug symbols.

Example

The following example shows how to implement this method for a CDebugSymbolProvider object that exposes the IDebugComPlusSymbolProvider interface.

HRESULT CDebugSymbolProvider::UpdateSymbols(
    ULONG32 ulAppDomainID,
    GUID guidModule,
    IStream* pUpdateStream
)
{
    ASSERT(!"Use UpdateSymbols2 on IDebugENCSymbolProvider2");
    return E_NOTIMPL;
}

HRESULT CDebugSymbolProvider::UpdateSymbols2(
    ULONG32 ulAppDomainID,
    GUID guidModule,
    IStream* pUpdateStream,
    LINEDELTA* pDeltaLines,
    ULONG cDeltaLines
)
{
    HRESULT hr = S_OK;
    CComPtr<CModule> pModule;
    Module_ID idModule(ulAppDomainID, guidModule);

    METHOD_ENTRY( CDebugSymbolProvider::UpdateSymbols );

    IfFailGo( GetModule( idModule, &pModule ) );
    IfFailGo( pModule->UpdateSymbols( pUpdateStream, pDeltaLines, cDeltaLines ) );

Error:

    METHOD_EXIT( CDebugSymbolProvider::UpdateSymbols, hr );

    return hr;
}

Return Value

If successful, returns S_OK; otherwise, returns an error code.

See Also

Reference

IDebugComPlusSymbolProvider