Condividi tramite


Funzione SymGetLineFromName64 (dbghelp.h)

Individua una riga di origine per il modulo, il nome file e il numero di riga specificati.

Sintassi

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

Parametri

[in] hProcess

Handle per il processo passato originariamente alla funzione SymInitialize .

[in, optional] ModuleName

Nome del modulo in cui deve trovarsi una riga.

[in, optional] FileName

Nome del file in cui deve trovarsi una riga. Se l'applicazione ha più di un file di origine con questo nome, assicurarsi di specificare un percorso completo.

[in] dwLineNumber

Numero di riga da individuare.

[out] plDisplacement

Spostamento in byte dall'inizio della riga o zero.

[in, out] Line

Puntatore a una struttura IMAGEHLP_LINE64 .

Valore restituito

Se la funzione ha esito positivo, il valore restituito è TRUE.

Se la funzione ha esito negativo, il valore restituito è FALSE. Per recuperare informazioni sull'errore estese, chiamare GetLastError.

Commenti

Il chiamante deve allocare correttamente il buffer Line e compilare i membri necessari della struttura IMAGEHLP_LINE64 prima di chiamare SymGetLineFromName64.

Prima di chiamare questa funzione, assicurarsi che i simboli vengano inizializzati correttamente chiamando SymInitialize, SymSetOptions e SymLoadModule64.

Questa funzione restituisce un puntatore a un buffer che può essere riutilizzato da un'altra funzione. Assicurarsi quindi di copiare immediatamente i dati restituiti in un altro buffer.

Tutte le funzioni DbgHelp, ad esempio questa, sono a thread singolo. Di conseguenza, le chiamate da più thread a questa funzione genereranno un comportamento imprevisto o un danneggiamento della memoria. Per evitare questo problema, è necessario sincronizzare tutte le chiamate simultanee da più thread a questa funzione.

Per chiamare la versione Unicode di questa funzione, definire DBGHELP_TRANSLATE_TCHAR. SymGetLineFromNameW64 è definito come segue in Dbghelp.h.


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

Questa funzione sostituisce la funzione SymGetLineFromName . Per altre informazioni, vedere Aggiornamento del supporto della piattaforma. SymGetLineFromName è definito come segue in Dbghelp.h.

#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

Esempio

Per un esempio, vedere Recupero delle informazioni sui simboli in base al nome.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione dbghelp.h
Libreria Dbghelp.lib
DLL Dbghelp.dll
Componente ridistribuibile DbgHelp.dll 5.1 o versione successiva

Vedi anche

Funzioni DbgHelp

IMAGEHLP_LINE64

SymGetLineFromAddr64

SymInitialize