¿Para qué sirve un archivo PDB?
Archivos PDB: Lo que todo desarrollador debe saber
Ejemplo de escenario PDB:
¿Qué es un archivo PDB?
La mayoría de los desarrolladores deberían saber que los archivos PDB se usan para ayudar con la depuración de software. Pero puede que no estemos familiarizados con cómo trabaja exactamente. Este artículo describe el almacenamiento y contenido de los archivos PDB. También describe cómo el depurador encuentra el archivo PDB correspondiente a binay y cómo encuentra el archivo de código fuente correspondiente a binay. Este artículo es para todos los desarrolladores nativos y gestionados.
Antes de empezar, definamos dos términos: compilación privada, que se usa para denotar una compilación generada en la propia máquina del desarrollador; Compilación pública, que significa una compilación generada en una máquina de compilación pública. La construcción privada es relativamente sencilla, porque PDB y binay están en el mismo lugar, y normalmente los problemas que tenemos tienen que ver con la construcción pública.
Lo más importante que todos los desarrolladores deben saber es que "los archivos PDB son tan importantes como el código fuente", sin lo cual ni siquiera puedes depurar. Para la compilación pública, el servidor de símbolos debe almacenar todos los PDB y, cuando el usuario reporta un error, el depurador puede encontrar automáticamente el archivo PDB correspondiente en binay, y tanto Visual Studio como Windbg saben cómo acceder al servidor de símbolos. Antes de almacenar PDB y binay en el servidor de símbolos, también necesitas indexar la ejecución de PDB en el código fuente, que es asociar PDB y fuente.
La siguiente parte asume que el Servidor de Símbolos y el Indexado del Servidor de Origen ya están configurados. TFS2010 se puede hacer tan sencillamente como indexar el código fuente y copiar el servidor de símbolos para una nueva versión.
2. El contenido del archivo PDB
Oficialmente comenzando el contenido de PDB, PDB no es un formato de archivo público, pero Microsoft proporciona una API para ayudar a obtener datos de PDB.
El PDB nativo de C++ contiene la siguiente información: * direcciones de funciones públicas, privadas y estáticas; * El nombre y la dirección de la variable global; * Nombres y desplazamientos de parámetros y variables locales en la pila; * definiciones de tipo de clase, estructura y datos; * Datos de omisión de puntero de trama para recorrer la pila nativa en x86; * El nombre y número de líneas en el archivo de código fuente;
El PDB de .NET contiene solo 2 partes de información: * Código fuente, nombre del archivo y número de líneas; * y el nombre de la variable local; * Todos los demás datos ya están incluidos en el archivo . NET;
|