Share via


SymGetLineFromName-Funktion (dbghelp.h)

Sucht eine Quellzeile für das angegebene Modul, den Dateinamen und die angegebene Zeilennummer.

Syntax

BOOL IMAGEAPI SymGetLineFromName(
  [in]           HANDLE         hProcess,
  [in, optional] PCSTR          ModuleName,
  [in, optional] PCSTR          FileName,
  [in]           DWORD          dwLineNumber,
  [out]          PLONG          plDisplacement,
  [in, out]      PIMAGEHLP_LINE Line
);

Parameter

[in] hProcess

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

[in, optional] ModuleName

Der Name des Moduls, in dem sich eine Zeile befinden soll.

[in, optional] FileName

Der Name der Datei, in der sich eine Zeile befinden soll. Wenn die Anwendung über mehrere Quelldateien mit diesem Namen verfügt, müssen Sie einen vollständigen Pfad angeben.

[in] dwLineNumber

Die zu findende Zeilennummer.

[out] plDisplacement

Die Verschiebung in Bytes vom Anfang der Zeile oder null.

[in, 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 SymGetLineFromName64 aufgerufen wird.

Stellen Sie vor dem Aufrufen dieser Funktion sicher, dass die Symbole ordnungsgemäß initialisiert werden, indem Sie zuerst SymInitialize, SymSetOptions und SymLoadModule64 aufrufen.

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. SymGetLineFromNameW64 ist in Dbghelp.h wie folgt definiert.


BOOL
IMAGEAPI
SymGetLineFromNameW64(
    __in HANDLE hProcess,
    __in_opt PCWSTR ModuleName,
    __in_opt PCWSTR FileName,
    __in DWORD dwLineNumber,
    __out PLONG plDisplacement,
    __inout PIMAGEHLP_LINEW64 Line
    );

#ifdef DBGHELP_TRANSLATE_TCHAR
#define SymGetLineFromName64   SymGetLineFromNameW64
#endif

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

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymGetLineFromName SymGetLineFromName64
#else
BOOL
IMAGEAPI
SymGetLineFromName(
    __in HANDLE hProcess,
    __in_opt PCSTR ModuleName,
    __in_opt PCSTR FileName,
    __in DWORD dwLineNumber,
    __out PLONG plDisplacement,
    __inout PIMAGEHLP_LINE Line
    );
#endif

Beispiele

Ein Beispiel finden Sie unter Abrufen von Symbolinformationen nach Name.

Anforderungen

   
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

SymGetLineFromAddr64

SymInitialize