Freigeben über


IDiaSession::findLinesByAddr

Ruft die Zeilen in einer bestimmten Kompiliereinheit ab, die einer angegebenen Adresse enthalten.

HRESULT findLinesByAddr ( 
   DWORD                 seg,
   DWORD                 offset,
   DWORD                 length,
   IDiaEnumLineNumbers** ppResult
);

Parameter

  • seg
    [in] Gibt die Stammkomponente Abschnitts der spezifischen Adresse auf.

  • offset
    [in] Gibt die Stammkomponente Offset der spezifischen Adresse an.

  • length
    [in] Gibt die Anzahl der Bytes Adressbereich an, die mit dieser Abfrage abzudecken.

  • ppResult
    [out] Gibt ein IDiaEnumLineNumbers-Objekt zurück, das eine Liste aller Zeilennummern enthält, die mit dem angegebenen Adressbereich enthalten.

Rückgabewert

Bei Erfolg gibt S_OKzurück. andernfalls gibt einen Fehlercode zurück.

Beispiel

In diesem Beispiel wird eine Funktion veranschaulicht, die alle Zeilennummern erhält, die in einer Funktion mit der Adresse und der Länge der Funktion enthalten sind.

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);
}

Siehe auch

Referenz

IDiaEnumLineNumbers

IDiaSession

IDiaSession::findLinesByVA