IDiaSession::findLinesByAddr
Ruft die Zeilen in einer angegebenen Kompiliereinheit ab, die eine angegebene Adresse enthalten.
Syntax
HRESULT findLinesByAddr (
DWORD seg,
DWORD offset,
DWORD length,
IDiaEnumLineNumbers** ppResult
);
Parameter
seg
[in] Gibt die Abschnittskomponente der betreffenden Adresse an.
offset
[in] Gibt die Offsetkomponente der betreffenden Adresse an.
length
[in] Gibt die Anzahl der Bytes des Adressbereichs an, der mit dieser Abfrage abgedeckt werden soll.
ppResult
[out] Gibt ein IDiaEnumLineNumbers-Objekt zurück, das eine Liste aller Zeilennummern enthält, die den angegebenen Adressbereich abdecken.
Rückgabewert
Wenn die Ausführung erfolgreich ist, wird S_OK
, andernfalls ein Fehlercode zurückgegeben.
Beispiel
Dieses Beispiel zeigt eine Funktion, die alle in einer Funktion enthaltenen Zeilennummern anhand der Adresse und Länge der Funktion abruft.
IDiaEnumLineNumbers* GetLineNumbersByAddr(IDiaSymbol *pFunc,
IDiaSession *pSession)
{
IDiaEnumLineNumbers* pEnum = NULL;
DWORD seg;
DWORD offset;
ULONGLONG length;
if (pFunc->get_addressSection ( &seg ) == S_OK &&
pFunc->get_addressOffset ( &offset ) == S_OK)
{
pFunc->get_length ( &length );
pSession->findLinesByAddr( seg, offset, static_cast<DWORD>( length ), &pEnum );
}
return(pEnum);
}