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 |