Función SymInitializeW (dbghelp.h)
Inicializa el controlador de símbolos para un proceso.
Sintaxis
BOOL IMAGEAPI SymInitializeW(
[in] HANDLE hProcess,
[in, optional] PCWSTR UserSearchPath,
[in] BOOL fInvadeProcess
);
Parámetros
[in] hProcess
Identificador que identifica al autor de la llamada. Este valor debe ser único y distinto de cero, pero no debe ser un identificador de proceso. Sin embargo, si usa un identificador de proceso, asegúrese de usar el identificador correcto. Si la aplicación es un depurador, use el identificador de proceso para el proceso que se está depurando. No use el identificador devuelto por GetCurrentProcess al depurar otro proceso, ya que llamar a funciones como SymLoadModuleEx puede tener resultados inesperados.
Este parámetro no puede ser NULL.
[in, optional] UserSearchPath
Ruta de acceso o serie de rutas de acceso separadas por punto y coma (;), que se usa para buscar archivos de símbolos. Si este parámetro es NULL, la biblioteca intenta formar una ruta de acceso de símbolos de los orígenes siguientes:
- Directorio de trabajo actual de la aplicación
- Variable de entorno _NT_SYMBOL_PATH
- La variable de entorno _NT_ALTERNATE_SYMBOL_PATH
[in] fInvadeProcess
Si este valor es TRUE, enumera los módulos cargados para el proceso y llama eficazmente a la función SymLoadModule64 para cada módulo.
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.
Observaciones
La función SymInitialize se usa para inicializar el controlador de símbolos de un proceso. En el contexto del controlador de símbolos, un proceso es un objeto práctico que se usará al recopilar información de símbolos. Normalmente, los depuradores usan controladores de símbolos y otras herramientas que necesitan cargar símbolos para un proceso que se está depurando.
El identificador pasado a SymInitialize debe ser el mismo valor pasado a todas las demás funciones de controlador de símbolos a las que llama el proceso. Es el identificador que usan las funciones para identificar al autor de la llamada y localizar la información de símbolos correcta. Cuando haya terminado de usar la información de símbolos, llame a la función SymCleanup para desasignar todos los recursos asociados al proceso para el que se cargan los símbolos.
La búsqueda de archivos de símbolos se realiza de forma recursiva para todas las rutas de acceso especificadas en el parámetro UserSearchPath de
Un proceso que llama a SymInitialize no debe llamarlo de nuevo a menos que llame primero a SymCleanup. Si la llamada a SymInitialize establece fInvadeProcess en TRUE y simplemente necesita volver a cargar la lista de módulos, use la función SymRefreshModuleList.
Todas las funciones DbgHelp, como esta, son un solo subproceso. Por lo tanto, las llamadas de más de un subproceso a esta función probablemente provocarán un comportamiento inesperado o daños en la memoria. Para evitar esto, llame a SymInitialize solo cuando se inicie el proceso y SymCleanup solo cuando finalice el proceso. No es necesario que cada subproceso del proceso llame a estas funciones.
Para llamar a la versión Unicode de esta función, defina DBGHELP_TRANSLATE_TCHAR.
Ejemplos
Para obtener un ejemplo, vea Inicializar el controlador de símbolos.
Nota
El encabezado dbghelp.h define SymInitialize como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de la plataforma de destino de |
Windows |
encabezado de |
dbghelp.h |
biblioteca de |
Dbghelp.lib |
DLL de |
Dbghelp.dll |
redistribuible | DbgHelp.dll 5.1 o posterior |