Configuración del proyecto para una configuración de depuración de C++

Es posible cambiar la configuración del proyecto para la configuración de depuración de C o C++ en el cuadro de diálogo Páginas de propiedades, como se describe en Establecer configuraciones Debug y Release. En las siguientes tablas se muestra dónde encontrar los valores relacionados con el depurador en el cuadro de diálogo Páginas de propiedades.

Nota

La configuración del proyecto de depuración en la categoría Propiedades de configuración y depuración es diferente en las aplicaciones para UWP y en los componentes escritos en C++. Vea Iniciar una sesión de depuración (VB, C#, C++ y XAML).

Cada vez que guarda la solución, la configuración de depuración se escribe y se guarda automáticamente en un archivo "de usuario" (.vcxproj.user).

Especifique el depurador que va a utilizar en el cuadro de lista Depurador para iniciar, como se describe en la tabla siguiente. La opción determinará qué propiedades serán visibles.

Carpeta Propiedades de configuración (categoría Depuración)

Configuración Descripción
Depurador para iniciar Especifica el depurador que se va a ejecutar, con las opciones siguientes:

- Depurador local de Windows
- Depurador remoto de Windows
- Depurador de explorador web
- Depurador de servicio web
Comando (Depurador local de Windows) Especifica el comando usado para iniciar el programa que se está depurando en el equipo local.
Comando remoto (Depurador remoto de Windows) La ruta de acceso al archivo .exe en el equipo remoto. Escriba la ruta de acceso como lo haría en el equipo remoto.
Argumentos de comandos (Depurador local de Windows)

Argumentos de comando remoto (Depurador remoto de Windows)
- Especifica los argumentos del comando especificado anteriormente.

Puede utilizar los siguientes operadores de redirección en este cuadro:

< file
Lee stdin del archivo.

> file
Escribe stdout en el archivo.

>> file
Agrega stdout al archivo.

2>file
Escribe stderr en el archivo.

2>>file
Agrega stderr al archivo.

2> &1
Envía el resultado de stderr (2) a la misma posición que stdout (1).

1> &2
Envía el resultado de stdout (1) a la misma posición que stderr (2).

En la mayoría de los casos, estos operadores solo pueden utilizarse en aplicaciones de consola.

Si necesita usar caracteres de escape en el comando, puede usar valores ASCII, como %25 para reemplazar %. Si usa el comando Iniciar depuración, las comillas dobles escaparán los comandos anteriores, como "<" para reemplazar <.
Directorio de trabajo Especifica el directorio de trabajo del programa que se está depurando en relación con el directorio del proyecto en el que se encuentra el archivo EXE. Si lo deja en blanco, el directorio de trabajo será el directorio del proyecto. Para la depuración remota, el directorio del proyecto está en el servidor remoto.
Asociar (Depurador local de Windows y Depurador remoto de Windows) Especifica si se debe iniciar o asociar a la aplicación. La configuración predeterminada es No.
Nombre de servidor remoto (Depurador remoto de Windows) Especifica el nombre de un equipo (que no es el suyo) en el que desea depurar una aplicación.

La macro de compilación RemoteMachine está establecida en el valor de esta propiedad; para obtener más información, vea Macros comunes para propiedades y comandos de compilación.
Conexión (Depurador remoto de Windows) Permite intercambiar entre los tipos de conexión estándar y sin autenticación para la depuración remota. Especifique el nombre de un equipo remoto en el cuadro Nombre de servidor remoto. Entre los tipos de conexión se incluyen los siguientes:

- Remoto con autenticación de Windows
- Remoto sin autenticación

Nota: La depuración sin autenticación puede dejar el equipo remoto expuesto a infracciones de seguridad. El modo de autenticación de Windows es más seguro.

Para obtener más información, vea Remote Debugging (Instalación de la depuración remota).
Dirección URL HTTP (Depurador de servicio web y Depurador de explorador web) Especifica la dirección URL en la que se encuentra el proyecto que se depura.
Tipo de depurador Especifica el tipo de depurador que se va a usar: Solo nativo, Solo administrado, Solo GPU, Mixto, Automático (predeterminado) o Script.

- Solo nativo es para código de C++ no administrado.
- Solo administrado es para código que se ejecuta bajo Common Language Runtime (código administrado).
- Mixto invoca depuradores para código administrado y no administrado.
- Automático determina el tipo de depurador en función de la información del compilador y del archivo EXE.
- Script invoca a un depurador para los scripts.
- Solo GPU es para el código de C++ AMP que se ejecuta en un dispositivo GPU o en el rasterizador de referencia de DirectX. Vea Depurar código de GPU.
Entorno (Depurador local de Windows y Depurador remoto de Windows) Especifica las variables de entorno del programa que se depura. Use sintaxis de variable de entorno estándar (por ejemplo, PATH="%SystemRoot%\..."). Estas variables reemplazan el entorno del sistema o se fusionan mediante combinación con este, en función de la configuración Fusionar mediante combinación entorno. Cuando se hace clic en la columna derecha, aparece "Editar…". Seleccione ese vínculo para abrir el Editor de propiedades y editar variables de entorno. Para agregar varias variables de entorno, use el Editor de propiedades y agregue una variable por línea.
Combinar entorno (Depurador local de Windows) Determina si las variables especificadas en el cuadro Entorno se combinarán con el entorno definido por el sistema operativo. La configuración predeterminada es Sí.
Depuración de SQL (todos menos el Depurador de clúster MPI) Habilita la depuración de procedimientos SQL desde la aplicación de Visual C++. La configuración predeterminada es No.
Tipo de acelerador de depuración (solo depuración de GPU) Especifica el dispositivo GPU que se debe usar para la depuración. La instalación de controladores de dispositivo para dispositivos GPU compatibles agregará opciones adicionales. La configuración predeterminada es GPU - Emulador de software.
Comportamiento de interrupción predeterminado de GPU (solo para la depuración de GPU) Especifica si se debe generar un evento de punto de interrupción para cada subproceso de una deformación SIMD. La configuración predeterminada consiste en generar el evento de punto de interrupción una sola vez por deformación.
Acelerador predeterminado de AMP Especifica el acelerador predeterminado de AMP al depurar código de GPU. Elija Acelerador de software WARP para investigar si un problema está provocado por el hardware o por un controlador en lugar de por el código.
Directorio de implementación (Depurador remoto de Windows) Especifica la ruta de acceso en el equipo remoto en la que se copiará el resultado del proyecto antes del lanzamiento. La ruta de acceso puede ser un recurso compartido de red en el equipo remoto, o bien una ruta de acceso a una carpeta del equipo remoto. La configuración predeterminada está vacía, lo que significa que el resultado del proyecto no se copia en un recurso compartido de red. Para habilitar la implementación de los archivos, también debe activar la casilla Implementar en el cuadro de diálogo Administrador de configuración. Para obtener más información, vea Cómo: crear y editar configuraciones.
Archivos adicionales para implementar (Depurador remoto de Windows) Si se establece la propiedad Directorio de implementación, será una lista delimitada por punto y coma de archivos o carpetas adicionales que se deben copiar en el directorio de implementación. La configuración predeterminada está vacía, lo que significa que no se copia ningún archivo o carpeta adicional en el directorio de implementación. Para copiar el contenido de una carpeta en la misma carpeta del directorio de implementación, especifique un nombre de carpeta. Para habilitar la implementación de los archivos, también debe activar la casilla Implementar en el cuadro de diálogo Administrador de configuración. Para obtener más información, vea Cómo: crear y editar configuraciones.
Implementar bibliotecas de depuración en tiempo de ejecución de Visual C++ (Depurador remoto de Windows) Si se establece la propiedad Directorio de implementación, especifica si las bibliotecas de tiempo de ejecución de depuración de Visual C++ de la plataforma actual se deben copiar en el recurso compartido de red. El valor predeterminado es Sí.

Carpeta C/C++ (categoría General)

Parámetro Descripción
Formato de la información de depuración (/Z7, /Zd, Zi, /ZI) Especifica el tipo de información de depuración que se va a crear para el proyecto.

La opción predeterminada (/ZI) crea una base de datos de programa (PDB) en formato compatible con Editar y continuar. Para obtener más información, vea /Z7, /Zd, /Zi, /ZI (Formato de la información de depuración).

Carpeta C/C++ (categoría Optimización)

Parámetro Descripción
Optimization Especifica si el compilador debe optimizar el código que produce. La optimización cambia el código que se ejecuta. El código optimizado ya no coincide con el código fuente, lo que dificulta la depuración.

La opción predeterminada Deshabilitado (/0d) suprime la optimización. Puede desarrollar con la optimización desactivada y activarla posteriormente cuando cree la versión de producción del código.

Carpeta Vinculador (categoría Depuración)

Parámetro Descripción
Generar información de depuración (/DEBUG) Indica al vinculador que incluya información de depuración, que tendrá el formato especificado mediante /Z7, /Zd, Zi o /ZI.
Generar archivo de base de datos de programas (/PDB:name) Especifique el nombre de un archivo de base de datos de programa (PDB) en este cuadro. Debe seleccionar ZI o /Zi en Formato de la información de depuración.
Quitar símbolos privados (/PDBSTRIPPED:filename) Especifique el nombre de un archivo PDB en este cuadro si no desea incluir símbolos privados en dicho archivo. Esta opción crea un segundo archivo PDB al generar la imagen de un programa con cualquiera de las opciones del compilador o el vinculador que generan archivos PDB, como /DEBUG, /Z7 o /Zd. O /Zi. En este segundo archivo PDB se omiten los símbolos que no se desea suministrar a los clientes. Para obtener más información, vea /PDBSTRIPPED (Quitar símbolos privados).
Generar archivo de asignaciones (/MAP) Indica al vinculador que genere un archivo de asignaciones durante la vinculación. La configuración predeterminada es No. Para obtener más información, consulte /MAP (generar archivo de asignaciones).
Nombre de archivo de asignaciones (/MAP:nombre) Si elige Generar archivo de asignaciones, puede especificar el archivo de asignaciones en este cuadro. Para obtener más información, consulte /MAP (generar archivo de asignaciones).
Exportaciones de asignaciones (/MAPINFO:EXPORTS) Incluye las funciones exportadas en el archivo de asignaciones. La configuración predeterminada es No. Para obtener más información, vea /MAPINFO (Incluir información en el archivo de asignaciones).
Ensamblado depurable (/ASSEMBLYDEBUG) Especifica la configuración de la opción /ASSEMBLYDEBUG del vinculador. Los valores posibles son:

- No se emitió el atributo Debuggable.
- Seguimiento de runtime y deshabilitar optimizaciones (/ASSEMBLYDEBUG) . Esta es la configuración predeterminada.
- No realizar seguimiento del motor en tiempo de ejecución ni habilitar optimizaciones (/ASSEMBLYDEBUG:DISABLE) .
- <heredar de primario o valores predeterminados del proyecto>.
- Para más información, vea /ASSEMBLYDEBUG (Agregar DebuggableAttribute).

Puede cambiar esta configuración en la carpeta Propiedades de configuración (categoría Depuración) mediante programación a través de la interfaz de Microsoft.VisualStudio.VCProjectEngine.VCDebugSettings. Para obtener más información, vea VCDebugSettings.

Otras configuraciones de proyecto

Para depurar tipos de proyecto como bibliotecas estáticas y archivos DLL, el proyecto de Visual Studio debe ser capaz de encontrar los archivos correctos. Cuando el código fuente está disponible, puede agregar bibliotecas estáticas y archivos DLL como proyectos independientes a la misma solución para facilitar la depuración. Para obtener información sobre cómo crear estos tipos de proyecto, vea Crear y usar una biblioteca de vínculos dinámicos (DLL) y Crear y usar una biblioteca estática. Con el código fuente disponible, también puede crear un proyecto de Visual Studio; para ello, elija Archivo>Nuevo>Proyecto a partir de código existente.

Para depurar archivos DLL que son externos al proyecto, vea Depuración de proyectos DLL. Si necesita depurar su propio proyecto DLL, pero no tiene acceso al proyecto para la aplicación que realiza la llamada, vea Depuración desde un proyecto DLL.

Vea también