Função SymGetLineFromName (dbghelp.h)
Localiza uma linha de origem para o módulo, o nome do arquivo e o número de linha especificados.
Sintaxe
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
);
Parâmetros
[in] hProcess
Um identificador para o processo que foi originalmente passado para a função SymInitialize .
[in, optional] ModuleName
O nome do módulo no qual uma linha deve ser localizada.
[in, optional] FileName
O nome do arquivo no qual uma linha deve ser localizada. Se o aplicativo tiver mais de um arquivo de origem com esse nome, especifique um caminho completo.
[in] dwLineNumber
O número de linha a ser localizado.
[out] plDisplacement
O deslocamento em bytes desde o início da linha ou zero.
[in, out] Line
Um ponteiro para uma estrutura IMAGEHLP_LINE64 .
Valor retornado
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 SymGetLineFromName64.
Antes de chamar essa função, verifique se os símbolos são inicializados corretamente chamando primeiro SymInitialize, SymSetOptions e SymLoadModule64.
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. SymGetLineFromNameW64 é definido da seguinte maneira em 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
Essa função substitui a função SymGetLineFromName . Para obter mais informações, consulte Suporte de plataforma atualizado. SymGetLineFromName é definido da seguinte maneira em 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
Exemplos
Para obter um exemplo, confira Recuperação de informações de símbolo por nome.
Requisitos
Plataforma de Destino | Windows |
Cabeçalho | dbghelp.h |
Biblioteca | Dbghelp.lib |
DLL | Dbghelp.dll |
Redistribuível | DbgHelp.dll 5.1 ou posterior |