Compartir a través de


Sintaxis de símbolos y coincidencia de símbolos

Los símbolos permiten manipular directamente los elementos que utiliza el programa en depuración. Por ejemplo, puede establecer un punto de interrupción en la función main con el comando bp main o mostrar la variable entera MyInt con el comando dd MyInt L1.

En muchos casos, los símbolos se pueden usar como parámetros en los comandos del depurador. Esto es compatible con la mayoría de los parámetros numéricos y también se admite en algunos parámetros de texto. Además de las reglas generales para la sintaxis de símbolos, también hay reglas de sintaxis de símbolos que se aplican en cada uno de estos casos.

Reglas generales de sintaxis de símbolos

Un nombre de símbolo consta de uno o varios caracteres, pero siempre comienza con una letra, un carácter de subrayado (_), un signo de interrogación (?) o un signo de dólar ($).

Un nombre de símbolo puede calificarse mediante un nombre de módulo. Un signo de exclamación (!) separa el nombre del módulo del símbolo (por ejemplo, mymodule!main). Si no se usa ningún nombre de módulo, el símbolo todavía se puede prefijar con un signo de exclamación. El uso de una signo de exclamación sin nombre de módulo puede ser especialmente útil, incluso para las variables locales, para indicar a un comando del depurador que un parámetro es un nombre y no un número hexadecimal. Por ejemplo, el comando dt (Display Type) leerá la variable fade como dirección, a menos que se use un signo de exclamación o la opción -n. Sin embargo, para especificar que un símbolo es local, precedítelo con un signo de dólar ( $ ) y un signo de exclamación ( ! ), como en $!lime.

Los nombres de símbolos no distinguen mayúsculas de minúsculas. Esto significa que los depuradores no comprenderán correctamente la presencia de myInt y myInt en el programa; cualquier comando que haga referencia a uno de estos puede tener acceso al otro, independientemente de cómo se escriba el comando en mayúsculas.

Sintaxis de símbolos en expresiones numéricas

El depurador entiende dos tipos diferentes de expresiones: expresiones de Ensamblador de macros de Microsoft (MASM) y expresiones de C++. En lo que respecta a los símbolos, estas dos formas de sintaxis difieren de la siguiente manera:

  • En las expresiones MASM, cada símbolo se interpreta como una dirección. Dependiendo de lo que hace referencia el símbolo, esta será la dirección de una variable global, variable local, función, segmento, módulo o cualquier otra etiqueta reconocida.

  • En las expresiones de C++, cada símbolo se interpreta según su tipo. Dependiendo de lo que hace referencia el símbolo, puede interpretarse como un entero, una estructura de datos, un puntero de función o cualquier otro tipo de datos. Un símbolo que no se corresponde con un tipo de datos de C++ (por ejemplo, un nombre de módulo sin modificar) producirá un error de sintaxis.

Para obtener una explicación de cuándo y cómo usar cada tipo de sintaxis, vea Evaluación de expresiones.

Si usa la sintaxis de expresión MASM, cualquier símbolo que se pueda interpretar como un número hexadecimal o como un registro (por ejemplo, BadFeed, ebX) siempre debe tener el prefijo de un signo de exclamación. Esto garantiza que el depurador lo reconozca como un símbolo.

El comando ss (Set Symbol Suffix) se puede usar para establecer el sufijo de símbolo. Esto indica al depurador que anexe automáticamente "A" o "W" a cualquier nombre de símbolo que no pueda encontrar de otra manera.

Muchas rutinas win32 existen en versiones ASCII y Unicode. Estas rutinas suelen tener un "A" o "W" anexado al final de sus nombres, respectivamente. El uso de un sufijo de símbolo ayudará al depurador al buscar estos símbolos.

La coincidencia de sufijos no está activa de forma predeterminada.

Sintaxis de símbolos en expresiones de texto

Los símbolos se pueden usar en los parámetros de texto de algunos comandos, por ejemplo, bm (Establecer punto de interrupción) y x (Examinar símbolos).

Estos parámetros de texto admiten una variedad de caracteres comodín y especificadores. Consulte Sintaxis de caracteres comodín de cadena para obtener más información. Además de los caracteres comodín de cadena estándar, una expresión de texto utilizada para especificar un símbolo se puede prefijar con un carácter de subrayado inicial. Al hacer coincidir esto con un símbolo, el depurador lo tratará como cualquier cantidad de caracteres de subrayado, incluso cero.

El sufijo de símbolo no se usa al buscar coincidencias con símbolos en expresiones de texto.