Compartir a través de


Función SymGetLineFromAddr (dbghelp.h)

Busca la línea de origen de la dirección especificada.

Sintaxis

BOOL IMAGEAPI SymGetLineFromAddr(
  [in]  HANDLE         hProcess,
  [in]  DWORD          dwAddr,
  [out] PDWORD         pdwDisplacement,
  [out] PIMAGEHLP_LINE Line
);

Parámetros

[in] hProcess

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

[in] dwAddr

Dirección para la que se debe ubicar una línea. No es necesario que la dirección esté en un límite de línea. Si la dirección aparece después del principio de una línea y antes del final de la línea, se encuentra la línea.

[out] pdwDisplacement

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

[out] Line

Puntero a una estructura de IMAGEHLP_LINE64 .

Valor devuelto

Si la función se realiza 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 SymGetLineFromAddr64.

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. SymGetLineFromAddrW64 se define como se indica a continuación en 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

Esta función sustituye a la función SymGetLineFromAddr . Para obtener más información, consulte Compatibilidad con la plataforma actualizada. SymGetLineFromAddr se define como se indica a continuación en 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

Ejemplos

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

Requisitos

Requisito Value
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

SymGetLineFromName64

SymInitialize