Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Determines if the function at the specified debug address is considered stale.
Syntax
Parameters
pAddress
[in] The debug address that is represented by an IDebugAddress interface. This address must be a METHOD_ADDRESS.
Return Value
If the function is considered stale, returns S_OK. If the function is not stale, returns S_FALSE.
Example
The following example shows how to implement this method for a CDebugSymbolProvider object that exposes the IDebugComPlusSymbolProvider interface.
HRESULT CDebugSymbolProvider::IsFunctionStale(
IDebugAddress* pAddress
)
{
HRESULT hr = S_OK;
CDEBUG_ADDRESS address;
CComPtr<CModule> pModule;
ASSERT(IsValidObjectPtr(this, CDebugSymbolProvider));
ASSERT(IsValidInterfacePtr(pAddress, IDebugAddress));
METHOD_ENTRY( CDebugSymbolProvider::IsFunctionStale );
IfFalseGo( pAddress, S_FALSE );
IfFailGo( pAddress->GetAddress( &address ) );
ASSERT(address.addr.dwKind == ADDRESS_KIND_METADATA_METHOD);
IfFalseGo( address.addr.dwKind == ADDRESS_KIND_METADATA_METHOD, S_FALSE );
IfFailGo( GetModule( address.GetModule(), &pModule) );
if (!pModule->IsFunctionStale( address.addr.addr.addrMethod.tokMethod,
address.addr.addr.addrMethod.dwVersion ))
{
// S_FALSE indicates the function is not stale
hr = S_FALSE;
}
Error:
METHOD_EXIT( CDebugSymbolProvider::IsFunctionStale, hr );
if (!SUCCEEDED(hr))
{
hr = S_FALSE;
}
return hr;
}