Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Editar y continuar para proyectos de C++ controla la mayoría de los tipos de cambios de código. Sin embargo, algunos cambios no se pueden aplicar durante la ejecución del programa. Para aplicar estos cambios, debe detener la ejecución y compilar una versión nueva del código.
Vea Editar y continuar (C++) para obtener información sobre cómo trabajar con Editar y continuar para C++ en Visual Studio.
Requisitos
Configuración de compilación (Propiedades del proyecto > )
C/C++ > Formato general > de información de depuración: Base de datos del programa para editar y continuar (
/ZI)Enlazador > Habilitación general > de la vinculación incremental: Sí (
/INCREMENTAL)Cualquier configuración de enlazador incompatible (como
/SAFESEH, o/OPT:...) puede provocar la advertencia LNK4075 durante la compilación. Ejemplo:LINK : warning LNK4075: ignoring '/INCREMENTAL' due to '/OPT:ICF' specification
Configuración del depurador (Opciones de depuración > )
Abra el panel
Abra el cuadro de diálogo Depuración (o Herramientas) >Opciones, y expanda la sección Depuración>.NET/C++ Recarga activa.
Seleccione una o todas las opciones siguientes para habilitar la característica:
Habilitar recarga en caliente: habilita la recarga en caliente al iniciar con el depurador adjunto (F5).
Habilitar recarga activa al iniciar sin depurar: habilita recarga activa al iniciarse sin el depurador conectado (Ctrl + F5).
Habilitar recarga activa en el guardado de archivos: habilita la recarga activa cuando se guarda el archivo.
Verbosidad del registro: establezca el nivel de detalle del registro cuando se habilite Hot Reload. Elija entre Mínimo (valor predeterminado), Detallado o Diagnóstico.
La modificación de esta configuración afecta a todos los proyectos en los que trabaja. No es necesario volver a generar la aplicación después de cambiar una configuración. Si compila la aplicación desde la línea de comandos o desde un archivo Make, pero depura en el entorno de Visual Studio, puede seguir usando Editar y continuar si establece la /ZI opción.
Cambios no admitidos
Los siguientes cambios de C/C++ no se pueden aplicar durante una sesión de depuración. Si realiza cualquiera de estos cambios y, a continuación, intenta aplicar cambios de código, aparece un mensaje de error o advertencia en la ventana Salida .
La mayoría de los cambios en los datos globales o estáticos.
Cambios en los archivos ejecutables que se copian de otra máquina y no se compilan localmente.
Cambios en un tipo de datos que afectan a la estructura de un objeto, como los miembros de una clase.
Agregar más de 64 000 bytes de código o datos nuevos.
Agregar variables que requieren un constructor en un punto antes del puntero de instrucción.
Cambios que afectan al código que requiere inicialización en tiempo de ejecución.
Agregar controladores de excepciones, en algunos casos.
Cambios en los archivos de recursos.
Cambios en el código en archivos de solo lectura.
Cambios en el código sin un archivo PDB correspondiente.
Cambios en el código que no tiene ningún archivo de objeto.
Modificación de lambdas en los escenarios siguientes:
- Cuando las expresiones lambda tienen un miembro estático o global.
- Cuando pasas lambdas a un
std::function. Este método provoca una infracción de ODR auténtica y da como resultado el error C1092.
Editar y continuar no actualiza las bibliotecas estáticas. Si realiza un cambio en una biblioteca estática, la ejecución continúa con la versión anterior y no se emite ninguna advertencia.
Escenarios no soportados
Editar y continuar en C/C++ no está disponible en las siguientes situaciones de depuración:
Depuración de aplicaciones nativas compiladas con /Zo (mejorar la depuración optimizada)
Proyectos que usan el kit de herramientas MSVC v120 y la opción C/C++
/bigobj. Editar y continuar con/bigobjsolo se admite en las herramientas de compilación MSVC v140 y versiones posteriores.Depuración en modo mixto (nativo o administrado).
Depuración de JavaScript.
Depuración de SQL.
Depuración de un archivo de volcado de memoria.
Editar código después de una excepción no controlada, cuando la opción Desenredar la pila de llamadas en excepciones no controladas no está seleccionada.
Para depurar una aplicación, use Asociar a en lugar de ejecutar la aplicación eligiendo Iniciar en el menú Depurar .
Depuración de código optimizado.
La depuración de una versión antigua de tu código después de que no se pudo construir una nueva versión debido a errores de construcción.
Uso de la ruta del compilador personalizado (cl.exe). Por motivos de seguridad, para volver a compilar un archivo durante editar y continuar, Visual Studio siempre usa el compilador instalado. Si usa una ruta de acceso del compilador personalizada (por ejemplo, a través de una variable personalizada
$(ExecutablePath)en el*.propsarchivo), se muestra una advertencia y Visual Studio vuelve a usar el compilador instalado de la misma versión o arquitectura.Arquitecturas heredadas/conjuntos de herramientas de MSVC. Con el conjunto de herramientas de MSVC v140, el depurador predeterminado admite Editar y continuar con aplicaciones X86 y X64. Los conjuntos de herramientas heredados solo admiten aplicaciones X86. Los conjuntos de herramientas anteriores a MSVC v120 deben usar el depurador heredado comprobando "Depuración > Opciones > General > Usar modo de compatibilidad nativa" para utilizar Editar y Continuar.
Limitaciones del atributo IDL
Editar y continuar no regenera los archivos del lenguaje de definición de interfaz (IDL). Por lo tanto, los cambios en los atributos IDL no se reflejan mientras se está depurando. Para ver el resultado de los cambios en los atributos IDL, debe parar el proceso de depuración y recompilar su aplicación. Editar y continuar no genera un error o una advertencia si los atributos IDL han cambiado. Para obtener más información, consulte Atributos IDL.
Diagnóstico de problemas
Si el escenario no se ajusta a ninguna de las condiciones mencionadas anteriormente, puede recopilar más detalles estableciendo el siguiente valor del Registro DWORD:
Abra una consola de comandos para desarrolladores.
Ejecute el siguiente comando:
VsRegEdit.exe set “C:\Program Files\Microsoft Visual Studio\[Version]\[YOUR EDITION]” HKCU Debugger NativeEncDiagnosticLoggingLevel DWORD 1
Establecer este valor al principio de una sesión de depuración hace que los distintos componentes de Editar y Continuar generen un registro detallado en la ventana de salida, panel Depuración.