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 |