Funzione SymGetLineFromName (dbghelp.h)

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

Sintassi

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

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

   
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