Funzione SymGetLineFromAddr (dbghelp.h)

Individua la riga di origine per l'indirizzo specificato.

Sintassi

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

Parametri

[in] hProcess

Handle per il processo passato originariamente alla funzione SymInitialize .

[in] dwAddr

Indirizzo per il quale deve trovarsi una riga. Non è necessario che l'indirizzo sia su un limite di riga. Se l'indirizzo viene visualizzato dopo l'inizio di una riga e prima della fine della riga, viene trovata la riga.

[out] pdwDisplacement

Spostamento in byte dall'inizio della riga o zero.

[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 della riga e compilare i membri necessari della struttura IMAGEHLP_LINE64 prima di chiamare SymGetLineFromAddr64.

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

Tutte le funzioni DbgHelp, ad esempio questa, sono a thread singolo. Pertanto, le chiamate da più thread a questa funzione potrebbero causare 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. SymGetLineFromAddrW64 è definito come indicato di seguito in Dbghelp.h.

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

#ifdef DBGHELP_TRANSLATE_TCHAR
 #define SymGetLineFromAddr64   SymGetLineFromAddrW64
#endif

Questa funzione sostituisce la funzione SymGetLineFromAddr . Per altre informazioni, vedere Supporto della piattaforma aggiornato. SymGetLineFromAddr è definito come indicato di seguito in Dbghelp.h.

#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

Esempio

Per un esempio, vedere Recupero delle informazioni sui simboli in base all'indirizzo.

Requisiti

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

Vedi anche

Funzioni DbgHelp

IMAGEHLP_LINE64

SymGetLineFromName64

SymInitialize