Archivos de base de datos de programa (C++)

Este tema se aplica a:

Edición

Visual Basic

C#

F#

C++

Web Developer

Express

El tema no es aplicable El tema no es aplicable El tema no es aplicable El tema es aplicable El tema no es aplicable

Pro, Premium y Ultimate

El tema no es aplicable El tema no es aplicable El tema no es aplicable

El tema es aplicable

El tema no es aplicable

Una base de datos de programas (archivo PDB) contiene información sobre el estado de la depuración y del proyecto, que permite la vinculación incremental de una configuración de depuración del programa. Se crea un archivo PDB cuando se genera con /ZI o /Zi (para C/C++).

En Visual C++, la opción /Fd da nombre al archivo PDB creado por el compilador. Cuando se crea un proyecto en Visual Studio mediante los asistentes, se establece la opción /Fd para crear un archivo PDB denominado proyecto.PDB.

Si genera una aplicación de C/C++ mediante un archivo MAKE y especifica /ZI o /Zi sin /Fd, terminará con dos archivos PDB:

  • VC80.PDB   (generalmente VCx0.PDB, donde x representa la versión de Visual C++). Este archivo almacena toda la información de depuración de los archivos OBJ individuales y reside en el mismo directorio que el archivo MAKE del proyecto.

  • proyecto.PDB   Este archivo almacena toda la información de depuración para un archivo .exe. En C/C++, este archivo reside en el subdirectorio \debug.

Cada vez que crea un archivo OBJ, el compilador de C/C++ combina la información de depuración en VCx0.PBD. La información insertada incluye información de tipo, pero no información de símbolo como definiciones de función. Por tanto, aunque cada archivo de código fuente incluya archivos de encabezado comunes como <windows.h>, las definiciones de tipo de esos encabezados sólo se almacenan una vez, en vez de aparecer en cada archivo OBJ.

El vinculador crea proyecto.PDB, que contiene información de depuración para el archivo EXE del proyecto. El archivo proyecto.PDB contiene toda la información de depuración, incluidos los prototipos de función, y no sólo la información de tipo que se encuentra en VCx0.PDB. Ambos archivos PDB permiten actualizaciones incrementales. El vinculador también incrusta la ruta de acceso al archivo .pdb en el archivo .exe o .dll que crea.

El depurador de Visual Studio utiliza la ruta de acceso al archivo PDB en el archivo EXE o DLL para buscar el archivo proyecto.PDB. Si el depurador no puede encontrar el archivo PDB en esa ubicación o si la ruta de acceso no es válida (por ejemplo, si el proyecto se ha movido a otro equipo), el depurador busca la ruta que contiene el archivo EXE, las rutas de acceso de símbolos especificadas en el cuadro de diálogo Opciones (carpeta Depuración, nodo Símbolos). Si el depurador no encuentra ningún archivo .PDB, aparece el cuadro de diálogo Buscar símbolos que le permite buscar símbolos o agregar más ubicaciones a la ruta de búsqueda.

Nota importanteImportante

El depurador solo cargará una PDB de un binario que coincida exactamente con la PDB creada cuando se compiló el binario (es decir, la PDB debe ser el original o una copia). Dado que el compilador tiene en cuenta varios factores al crear un binario, el diseño real de un binario puede cambiar aunque el propio código no haya cambiado. Para obtener más información, vea la entrada del blog de MSDN Why does Visual Studio require debugger symbol files to *exactly* match the binary files that they were built with?

Vea también

Conceptos

Archivos de base de datos de programas (C#, F# y Visual Basic)

Otros recursos

Preparación y configuración de la depuración

Historial de cambios

Fecha

Historial

Motivo

Marzo de 2011

Se ha agregado información y un vínculo sobre el requisito de que la PDB coincida exactamente.

Mejora de la información.