Share via


SymGetLineFromAddr-Funktion (dbghelp.h)

Sucht die Quellzeile für die angegebene Adresse.

Syntax

BOOL IMAGEAPI SymGetLineFromAddr(
  [in]  HANDLE         hProcess,
  [in]  DWORD          dwAddr,
  [out] PDWORD         pdwDisplacement,
  [out] PIMAGEHLP_LINE Line
);

Parameter

[in] hProcess

Ein Handle für den Prozess, der ursprünglich an die SymInitialize-Funktion übergeben wurde.

[in] dwAddr

Die Adresse, für die sich eine Zeile befinden soll. Es ist nicht erforderlich, dass sich die Adresse an einer Zeilengrenze befindet. Wenn die Adresse nach dem Anfang einer Zeile und vor dem Ende der Zeile angezeigt wird, wird die Zeile gefunden.

[out] pdwDisplacement

Die Verschiebung in Bytes vom Anfang der Zeile oder null.

[out] Line

Ein Zeiger auf eine IMAGEHLP_LINE64-Struktur .

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert TRUE.

Wenn die Funktion fehlschlägt, ist der Rückgabewert FALSE. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen abzurufen.

Hinweise

Der Aufrufer muss den Zeilenpuffer ordnungsgemäß zuordnen und die erforderlichen Member der IMAGEHLP_LINE64-Struktur ausfüllen, bevor SymGetLineFromAddr64 aufgerufen wird.

Diese Funktion gibt einen Zeiger auf einen Puffer zurück, der von einer anderen Funktion wiederverwendet werden kann. Achten Sie daher darauf, die zurückgegebenen Daten sofort in einen anderen Puffer zu kopieren.

Alle DbgHelp-Funktionen, z. B. diese, sind singlethreaded. Daher führen an diese Funktion gerichtete Aufrufe mehrerer Threads wahrscheinlich zu unerwartetem Verhalten oder einer Beschädigung des Speichers. Um dies zu vermeiden, müssen Sie alle an diese Funktion gerichteten gleichzeitigen Aufrufe mehrerer Threads synchronisieren.

Um die Unicode-Version dieser Funktion aufzurufen, definieren Sie DBGHELP_TRANSLATE_TCHAR. SymGetLineFromAddrW64 ist in Dbghelp.h wie folgt definiert.

BOOL
IMAGEAPI
SymGetLineFromAddrW64(
    _In_ HANDLE hProcess,
    _In_ DWORD64 dwAddr,
    _Out_ PDWORD pdwDisplacement,
    _Out_ PIMAGEHLP_LINEW64 Line
    );

#ifdef DBGHELP_TRANSLATE_TCHAR
 #define SymGetLineFromAddr64   SymGetLineFromAddrW64
#endif

Diese Funktion ersetzt die SymGetLineFromAddr-Funktion . Weitere Informationen finden Sie unter Aktualisierte Plattformunterstützung. SymGetLineFromAddr ist in Dbghelp.h wie folgt definiert.

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymGetLineFromAddr SymGetLineFromAddr64
#define SymGetLineFromAddrW SymGetLineFromAddrW64
#else
BOOL
IMAGEAPI
SymGetLineFromAddr(
    _In_ HANDLE hProcess,
    _In_ DWORD dwAddr,
    _Out_ PDWORD pdwDisplacement,
    _Out_ PIMAGEHLP_LINE Line
    );

BOOL
IMAGEAPI
SymGetLineFromAddrW(
    _In_ HANDLE hProcess,
    _In_ DWORD dwAddr,
    _Out_ PDWORD pdwDisplacement,
    _Out_ PIMAGEHLP_LINEW Line
    );
#endif

Beispiele

Ein Beispiel finden Sie unter Abrufen von Symbolinformationen nach Adresse.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile dbghelp.h
Bibliothek Dbghelp.lib
DLL Dbghelp.dll
Verteilbare Komponente DbgHelp.dll 5.1 oder höher

Weitere Informationen

DbgHelp-Funktionen

IMAGEHLP_LINE64

SymGetLineFromName64

SymInitialize