Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Określa, czy określony adres debugowania jest punktem sekwencji.
Składnia
Parametry
pAddress
[in] Adres debugowania reprezentowany przez interfejs IDebugAddress .
Wartość zwracana
Jeśli adres debugowania jest punktem sekwencji, zwraca wartość S_OK; w przeciwnym razie zwraca wartość S_FALSE.
Przykład
W poniższym przykładzie pokazano, jak zaimplementować tę metodę dla obiektu CDebugSymbolProvider, który uwidacznia interfejs IDebugComPlusSymbolProvider2.
HRESULT CDebugSymbolProvider::IsAddressSequencePoint(
IDebugAddress* pAddress
)
{
HRESULT hr = S_OK;
CDEBUG_ADDRESS address;
CComPtr<CModule> pModule;
METHOD_ENTRY( CDebugSymbolProvider::LoadSymbol );
IfFalseGo( pAddress, E_INVALIDARG );
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->IsSequencePoint( address.addr.addr.addrMethod.tokMethod,
address.addr.addr.addrMethod.dwVersion,
address.addr.addr.addrMethod.dwOffset ))
{
// S_FALSE indicates this is not a sequence point
hr = S_FALSE;
}
Error:
METHOD_EXIT( CDebugSymbolProvider::LoadSymbol, hr );
return hr;
}