Compartir a través de


Símbolos públicos y símbolos privados

Al compilar un controlador u otro programa, los símbolos del programa se almacenan normalmente en archivos de símbolos, aunque algunos compiladores antiguos almacenan ciertos símbolos en el archivo ejecutable. Cuando un depurador está analizando un programa, debe tener acceso a los símbolos del programa.

Normalmente, los archivos de símbolos pueden incluir cualquiera o todos los símbolos siguientes:

  • Nombres y direcciones de todas las funciones

  • Todas las definiciones de tipo de datos, estructura y clase

  • Nombres, tipos de datos y direcciones de variables globales

  • Nombres, tipos de datos, direcciones y ámbitos de variables locales

  • Los números de línea del código fuente que corresponden a cada instrucción binaria

Algunos desarrolladores de programas pueden sentirse incómodos compartiendo toda esta información con sus clientes. BinPlace se puede usar para reducir la cantidad de símbolos de un archivo de símbolos.

Algunos símbolos básicos, como los nombres de función y las variables globales, son necesarios para incluso la depuración más rudimentaria. Se denominan símbolos públicos. Los símbolos como los nombres de estructura de datos, las variables globales visibles en un solo archivo de objeto, las variables locales y la información de número de línea no siempre son necesarios para la depuración, aunque son útiles para una sesión de depuración más detallada. Se denominan símbolos privados.

Un archivo de símbolos que contiene símbolos públicos y privados se denomina archivo de símbolos completo. Un archivo de símbolos que contiene solo símbolos públicos se denomina archivo de símbolos quitado.

BinPlace puede crear un archivo de símbolos quitado. Para ello, se crea un nuevo archivo de símbolos que solo contiene símbolos públicos; se quitan los símbolos privados ("quitados"). Cuando se usan las opciones de BinPlace más comunes (-a -x -s -n), los archivos de símbolos quitados se colocan en el directorio que aparece después del modificador -s y los archivos de símbolos completos se colocan en el directorio que aparece después del modificador -n .

Cuando BinPlace quita un archivo de símbolos, las versiones quitadas y completas del archivo reciben firmas idénticas y otra información de identificación. Esto le permite usar cualquiera de las versiones para la depuración.

Nota BinPlace quitará los símbolos privados de un archivo de símbolos cuando el archivo de símbolos esté en el mismo directorio que el archivo ejecutable y especifique el nombre del archivo ejecutable (junto con las opciones adecuadas) en la línea de comandos de BinPlace. No debe especificar el nombre del propio archivo de símbolos, lo que hará que BinPlace mueva el archivo sin modificarlo.

Si necesita determinar si un archivo de símbolos contiene símbolos privados, puede usar la herramienta SymChk . SymChk forma parte del paquete Herramientas de depuración para Windows. Consulta SymChk y Depuración de Windows para obtener más información.

Si va a enviar el controlador al Programa de certificación de hardware de Windows, puede enviar archivos de símbolos eliminados si prefiere no compartir sus símbolos privados con Microsoft. Los archivos de símbolos que BinPlace ha quitado no exponen ninguna parte de la arquitectura del controlador que normalmente se consideraría confidencial. Para obtener más información, consulte el Programa de certificación de hardware de Windows.