Compartir a través de


Función UnDecorateSymbolName (dbghelp.h)

Descora el nombre de símbolo de C++ decorado especificado.

Sintaxis

DWORD IMAGEAPI UnDecorateSymbolName(
  [in]  PCSTR name,
  [out] PSTR  outputString,
  [in]  DWORD maxStringLength,
  [in]  DWORD flags
);

Parámetros

[in] name

Nombre de símbolo de C++ decorado. Este nombre se puede identificar por el primer carácter del nombre, que siempre es un signo de interrogación (?).

[out] outputString

Puntero a un búfer de cadenas que recibe el nombre no codificado.

[in] maxStringLength

Tamaño del búfer UnDecoratedName , en caracteres.

[in] flags

Las opciones de cómo el nombre representativo no está descorrado. Este parámetro puede ser cero o más de los valores siguientes.

Valor Significado
UNDNAME_32_BIT_DECODE
0x0800
Decorate nombres decorados de 32 bits.
UNDNAME_COMPLETE
0x0000
Habilite la descoración completa.
UNDNAME_NAME_ONLY
0x1000
Descora solo el nombre de la declaración principal. Devuelve [scope::]name. Expande los parámetros de plantilla.
UNDNAME_NO_ACCESS_SPECIFIERS
0x0080
Deshabilite la expansión de especificadores de acceso para los miembros.
UNDNAME_NO_ALLOCATION_LANGUAGE
0x0010
Deshabilite la expansión del especificador de lenguaje de declaración.
UNDNAME_NO_ALLOCATION_MODEL
0x0008
Deshabilite la expansión del modelo de declaración.
UNDNAME_NO_ARGUMENTS
0x2000
No decorar argumentos de función.
UNDNAME_NO_CV_THISTYPE
0x0040
Deshabilite la expansión de modificadores CodeView en este tipo para la declaración principal.
UNDNAME_NO_FUNCTION_RETURNS
0x0004
Deshabilite la expansión de los tipos de valor devuelto para las declaraciones principales.
UNDNAME_NO_LEADING_UNDERSCORES
0x0001
Quite los caracteres de subrayado iniciales de las palabras clave de Microsoft.
UNDNAME_NO_MEMBER_TYPE
0x0200
Deshabilite la expansión del atributo estático o virtual de los miembros.
UNDNAME_NO_MS_KEYWORDS
0x0002
Deshabilite la expansión de palabras clave de Microsoft.
UNDNAME_NO_MS_THISTYPE
0x0020
Deshabilite la expansión de palabras clave de Microsoft en este tipo para la declaración principal.
UNDNAME_NO_RETURN_UDT_MODEL
0x0400
Deshabilite la expansión del modelo de Microsoft para las devoluciones de tipo definido por el usuario.
UNDNAME_NO_SPECIAL_SYMS
0x4000
No descodificar nombres especiales, como vtable, vcall, vector, metatipo, etc.
UNDNAME_NO_THISTYPE
0x0060
Deshabilite todos los modificadores en este tipo.
UNDNAME_NO_THROW_SIGNATURES
0x0100
Deshabilite la expansión de firmas throw para funciones y punteros a funciones.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es el número de caracteres del búfer UnDecoratedName , no incluido el terminador NULL.

Si la función no se realiza correctamente, el valor devuelto es cero. Para recuperar información de error extendida, llame a GetLastError.

Si se produce un error en la función y devuelve cero, el contenido del búfer UnDecoratedName no está definido.

Comentarios

Para usar símbolos sin codificar, llame a la función SymSetOptions con la opción SYMOPT_UNDNAME .

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.

Ejemplos

Para obtener un ejemplo, vea Recuperar nombres de símbolos no codificados.

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

SymSetOptions