Compartilhar via


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

Confira também

Funções DbgHelp

IMAGEHLP_LINE64

SymGetLineFromAddr64

SymInitialize