Função SymGetLineFromAddrW64 (dbghelp.h)
Localiza a linha de origem do endereço especificado.
Sintaxe
BOOL IMAGEAPI SymGetLineFromAddrW64(
[in] HANDLE hProcess,
[in] DWORD64 dwAddr,
[out] PDWORD pdwDisplacement,
[out] PIMAGEHLP_LINEW64 Line
);
Parâmetros
[in] hProcess
Um identificador para o processo que foi originalmente passado para a função SymInitialize .
[in] dwAddr
O endereço para o qual uma linha deve estar localizada. Não é necessário que o endereço esteja em um limite de linha. Se o endereço aparecer após o início de uma linha e antes do final da linha, a linha será encontrada.
[out] pdwDisplacement
O deslocamento em bytes desde o início da linha ou zero.
[out] Line
Um ponteiro para uma estrutura IMAGEHLP_LINE64 .
Retornar valor
Se a função for bem-sucedida, o valor retornado será TRUE.
Se a função falhar, o valor retornado será FALSE. Para recuperar informações de erro estendidas, chame GetLastError.
Comentários
O chamador deve alocar o buffer de linha corretamente e preencher os membros necessários da estrutura IMAGEHLP_LINE64 antes de chamar SymGetLineFromAddr64.
Essa função retorna um ponteiro para um buffer que pode ser reutilizado por outra função. Portanto, copie os dados retornados para outro buffer imediatamente.
Todas as funções DbgHelp, como esta, são threaded único. Portanto, chamadas de mais de um thread para essa função provavelmente resultarão em comportamento inesperado ou corrupção de memória. Para evitar isso, você deve sincronizar todas as chamadas simultâneas de mais de um thread para essa função.
Para chamar a versão Unicode dessa função, defina DBGHELP_TRANSLATE_TCHAR. SymGetLineFromAddrW64 é definido da seguinte maneira em 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
Essa função substitui a função SymGetLineFromAddr . Para obter mais informações, consulte Suporte de plataforma atualizado. SymGetLineFromAddr é definido da seguinte maneira em 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
Exemplos
Para obter um exemplo, confira Recuperação de informações de símbolo por endereço.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Windows |
Cabeçalho | dbghelp.h |
Biblioteca | Dbghelp.lib |
DLL | Dbghelp.dll |
Redistribuível | DbgHelp.dll 5.1 ou posterior |