Símbolos

Un símbolo es una unidad con nombre de datos o código de un archivo de código fuente que aparece en un módulo. La información sobre los símbolos puede incluir el nombre, el tipo (si procede), la dirección o el registro donde se almacena y los símbolos primarios o secundarios. Entre los ejemplos de símbolos se incluyen variables (locales y globales), funciones y cualquier punto de entrada en un módulo.

El motor usa la información de símbolos para ayudar a interpretar los datos y el código en el destino. Con esta información, el motor puede buscar símbolos por nombre o ubicación en la memoria y proporcionar una descripción de un símbolo.

El motor obtiene su información sobre los símbolos de los archivos de símbolos, que se encuentran en el sistema de archivos local o se cargan desde un servidor de símbolos. Al usar un servidor de símbolos, el motor usará automáticamente la versión correcta del archivo de símbolos para que coincida con el módulo del destino. Los archivos de símbolos se pueden cargar siempre que se cargue el módulo correspondiente o se puedan cargar según sea necesario.

Nota A menudo, la optimización de compiladores no incluye información precisa en los archivos de símbolos. Esto puede hacer que el motor malinterprete el valor de algunas variables, ya que la ubicación o la duración de la variable podrían describirse incorrectamente, lo que hace que el motor examine el fragmento de memoria incorrecto o piense que un valor de variable está activo cuando está inactivo (o viceversa). También es posible que un compilador de optimización cambie el orden de ejecución o divida una función en varias partes. Los mejores resultados suelen obtenerse al depurar código no optimizado.

Información adicional

Para obtener más información sobre el uso de símbolos, consulte Using Symbols. Para obtener información general sobre el uso de archivos de símbolos y servidores de símbolos, vea Símbolos en la sección Depuradores de esta documentación.