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.
Bestimmt, dass die Funktion an der angegebenen Debugadresse gelöscht wird.
Syntax
Parameter
pAddress
[in] Die Debugadresse, die durch eine IDebugAddress-Schnittstelle dargestellt wird. Diese Adresse muss eine METHOD_ADDRESS sein.
Rückgabewert
Wenn die Funktion gelöscht wird, wird zurückgegeben S_OK. Wenn die Funktion vorhanden ist, wird zurückgegeben S_FALSE.
Beispiel
Das folgende Beispiel zeigt, wie Sie diese Methode für ein CDebugSymbolProvider -Objekt implementieren, das die IDebugComPlusSymbolProvider-Schnittstelle verfügbar macht.
HRESULT CDebugSymbolProvider::IsFunctionDeleted(
IDebugAddress* pAddress
)
{
HRESULT hr = S_OK;
CDEBUG_ADDRESS address;
CComPtr<CModule> pModule;
ASSERT(IsValidObjectPtr(this, CDebugSymbolProvider));
ASSERT(IsValidInterfacePtr(pAddress, IDebugAddress));
METHOD_ENTRY( CDebugSymbolProvider::IsFunctionDeleted );
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->IsFunctionDeleted( address.addr.addr.addrMethod.tokMethod,
address.addr.addr.addrMethod.dwVersion,
address.addr.addr.addrMethod.dwOffset ))
{
// S_FALSE indicates the function is not deleted
hr = S_FALSE;
}
Error:
METHOD_EXIT( CDebugSymbolProvider::IsFunctionDeleted, hr );
if (!SUCCEEDED(hr))
{
hr = S_FALSE;
}
return hr;
}