Compartir a través de


Función SymGetLineFromName (dbghelp.h)

Busca una línea de origen para el módulo, el nombre de archivo y el número de línea especificados.

Sintaxis

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

Identificador del proceso que se pasó originalmente a la función SymInitialize .

[in, optional] ModuleName

Nombre del módulo en el que se va a ubicar una línea.

[in, optional] FileName

Nombre del archivo en el que se va a ubicar una línea. Si la aplicación tiene más de un archivo de origen con este nombre, asegúrese de especificar una ruta de acceso completa.

[in] dwLineNumber

Número de línea que se va a ubicar.

[out] plDisplacement

Desplazamiento en bytes desde el principio de la línea o cero.

[in, out] Line

Puntero a una estructura de IMAGEHLP_LINE64 .

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es TRUE.

Si se produce un error en la función, el valor devuelto es FALSE. Para recuperar información de error extendida, llame a GetLastError.

Comentarios

El autor de la llamada debe asignar correctamente el búfer de línea y rellenar los miembros necesarios de la estructura de IMAGEHLP_LINE64 antes de llamar a SymGetLineFromName64.

Antes de llamar a esta función, asegúrese de que los símbolos se inicializan correctamente llamando primero a SymInitialize, SymSetOptions y SymLoadModule64.

Esta función devuelve un puntero a un búfer que otra función puede reutilizar. Por lo tanto, asegúrese de copiar los datos devueltos a otro búfer inmediatamente.

Todas las funciones DbgHelp, como esta, son un único subproceso. Por lo tanto, es probable que las llamadas desde más de un subproceso a esta función producirán un comportamiento inesperado o daños en la memoria. Para evitarlo, debe sincronizar todas las llamadas simultáneas de más de un subproceso a esta función.

Para llamar a la versión Unicode de esta función, defina DBGHELP_TRANSLATE_TCHAR. SymGetLineFromNameW64 se define de la siguiente manera en 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

Esta función sustituye a la función SymGetLineFromName . Para obtener más información, consulte Compatibilidad con la plataforma actualizada. SymGetLineFromName se define de la siguiente manera en 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

Ejemplos

Para obtener un ejemplo, consulte Recuperación de información de símbolos por nombre.

Requisitos

   
Plataforma de destino Windows
Encabezado dbghelp.h
Library Dbghelp.lib
Archivo DLL Dbghelp.dll
Redistribuible DbgHelp.dll 5.1 o posterior

Consulte también

Funciones de DbgHelp

IMAGEHLP_LINE64

SymGetLineFromAddr64

SymInitialize