Cambios admitidos en el código (C++)Supported Code Changes (C++)

Con Visual C++, Editar y continuar controla la mayoría de los tipos de cambios del código.Edit and Continue for Visual C++ handles most types of code changes. Sin embargo, algunos cambios no se pueden aplicar durante la ejecución de programa.However, some changes cannot be applied during program execution. Para aplicar estos cambios, debe detener la ejecución y compilar una versión nueva del código.To apply these changes, you must stop execution and build a fresh version of the code.

Consulte Edit and Continue (Visual C++) para obtener información sobre el uso de Editar y continuar para C++ en Visual Studio.See Edit and Continue (Visual C++) for information about working with Edit and Continue for C++ in Visual Studio.

Cambios no admitidosUnsupported changes

Los cambios siguientes en C/C++ no se pueden aplicar durante una sesión de depuración:The following C/C++ changes cannot be applied during a debugging session:

  • La mayoría de los cambios en datos globales o estáticos.Most changes to global or static data.

  • Cambios en los ejecutables copiados de otro equipo y no compilados localmente.Changes to executables that are copied from another machine and not built locally.

  • Cambios en un tipo de datos que afectan al diseño de un objeto, por ejemplo los miembros de datos de una clase.Changes to a data type that affect the layout of an object, such as data members of a class.

  • Agregar más de 64 KB de código o datos nuevos.Adding more than 64k bytes of new code or data.

  • Agregar variables que requieran un constructor en un punto anterior al puntero de instrucción.Adding variables that require a constructor at a point before the instruction pointer.

  • Cambios que afecten a una sección del código que requiera una inicialización en tiempo de ejecución.Changes that affect code that requires run-time initialization.

  • Agregar controladores de excepciones, en algunos casos.Adding exception handlers, in some instances.

  • Cambios en archivos de recursos.Changes to resource files.

  • Cambios en el código de archivos de solo lectura.Changes to code in read-only files.

  • Cambios en código sin un archivo PDB correspondiente.Changes to code without a corresponding PDB file.

  • Cambios en código que no tiene un archivo de objeto.Changes to code that has no object file.

    Si realiza alguno de estos cambios y, a continuación, intenta aplicarlos, aparecerá un mensaje de error o advertencia en la Ventana de salida .If you make one of these changes and then try to apply code changes, an error or warning message appears in the Output window.

  • Editar y continuar no vuelve a actualizar las bibliotecas estáticas.Edit and Continue does not update static libraries. Si realiza un cambio en una biblioteca estática, la ejecución continuará con la versión anterior y no se emitirá ninguna advertencia.If you make a change in a static library, execution continues with the old version and no warning is issued.

Escenarios no admitidosUnsupported scenarios

La opción Editar y continuar de C/C++ no se encuentra disponible en los siguientes escenarios de depuración:Edit and Continue for C/C++ is unavailable in the following debugging scenarios:

  • Depurar aplicaciones nativas compiladas con /Zo (Mejorar la depuración optimizada)Debugging native apps compiled with /Zo (Enhance Optimized Debugging)

  • En las versiones de Visual Studio anteriores a Visual Studio 2015 Update 1, depurar componentes o aplicaciones para UWP.In versions of Visual Studio previous to Visual Studio 2015 Update 1, debugging UWP apps or components. A partir de Visual Studio 2015 Update 1, puede usar Editar y continuar en aplicaciones de C++ de UWP y aplicaciones de DirectX, ya que ahora admite la /ZI modificador del compilador con la /bigobj cambie.Starting in Visual Studio 2015 Update 1, you can use Edit and Continue in UWP C++ apps and DirectX apps, because it now supports the /ZI compiler switch with the /bigobj switch. También puede usar Editar y continuar con binarios compilados con el modificador /FASTLINK .You can also use Edit and Continue with binaries compiled with the /FASTLINK switch.

  • Depurar en Windows 98.Debugging on Windows 98.

  • Depuración en modo mixto (nativa o administrada).Mixed-mode (native/managed) debugging.

  • Depuración de JavaScript.Javascript debugging.

  • Depuración de SQL.SQL debugging.

  • Depurar un archivo de volcado de memoria.Debugging a dump file.

  • Edición de código tras una excepción no controlada, cuando no se ha seleccionado la opción Desenredar la pila de llamadas de las excepciones no controladas .Editing code after an unhandled exception, when the Unwind the call stack on unhandled exceptions option is not selected.

  • Depure una aplicación utilizando Adjuntar a en lugar de ejecutar la aplicación desde la opción Iniciar del menú Depurar .Debugging an app by using Attach to instead of running the app by choosing Start on the Debug menu.

  • Depuración de código optimizado.Debugging optimized code.

  • Depurar una versión anterior del código cuando no ha sido posible generar una nueva versión debido a errores de compilación.Debugging an old version of your code after a new version failed to build because of build errors.

Limitaciones de la vinculaciónLinking limitations

Opciones del vinculador que deshabilitan Editar y continuarLinker options that disable Edit and Continue

Las siguientes opciones del vinculador deshabilitan Editar y continuar:The following linker options disable Edit and Continue:

  • La definición de /OPT:REF, /OPT:ICFo /INCREMENTAL:NO deshabilita Editar y continuar con la advertencia siguiente:Setting /OPT:REF, /OPT:ICF, or /INCREMENTAL:NO disables Edit and Continue with the following warning:

    LINK : advertencia LNK4075: se omite /EDITANDCONTINUE debido a la especificación /OPTLINK : warning LNK4075: ignoring /EDITANDCONTINUE due to /OPT

    especificaciónspecification

  • La definición de /ORDER, /RELEASEo /FORCE deshabilita Editar y continuar con esta advertencia:Setting /ORDER, /RELEASE, or /FORCE disables Edit and Continue with this warning:

    LINK : advertencia LNK4075: se omite /INCREMENTAL debido a la especificación /optionLINK : warning LNK4075: ignoring /INCREMENTAL due to /option

    especificaciónspecification

  • La configuración de alguna opción que impida la creación de un archivo de base de datos de programa (.pdb) deshabilita Editar y continuar sin ninguna advertencia específica.Setting any option that prevents the creation of a program database (.pdb) file disables Edit and Continue with no specific warning.

Volver a vincular automáticamente las limitacionesAuto relinking limitations

De forma predeterminada, Editar y continuar vuelve a vincular el programa al final de una sesión de depuración para crear un ejecutable actualizado.By default, Edit and Continue relinks your program at the end of a debugging session to create an up-to-date executable.

Editar y continuar no puede volver a vincular el programa si realiza la depuración desde una ubicación distinta de la ubicación de compilación original.Edit and Continue cannot relink your program if you are debugging it from a location other than the original build location. Un mensaje le indica que debe recompilar el programa manualmente.A message tells you that you need to rebuild manually.

Editar y continuar no recompila bibliotecas estáticas.Edit and Continue does not rebuild static libraries. Si realiza cambios en una biblioteca estática mediante Editar y continuar, deberá recompilar la biblioteca manualmente y volver a vincular las aplicaciones utilizando la biblioteca.If you make changes to a static library using Edit and Continue, you need to manually rebuild the library and relink apps using it.

Editar y continuar no invoca pasos de compilación personalizada.Edit and Continue does not invoke custom build steps. Si el programa usa pasos de compilación personalizada, conviene recompilarlo manualmente para que se pueda llamar a dichos pasos.If your program uses custom build steps, you might want to rebuild manually so that custom build steps can be invoked. En ese caso, puede deshabilitarse la revinculación después de Editar y continuar para asegurarse de que se le pide confirmación antes de recompilar manualmente.In that case, you can disable relinking after Edit and Continue to ensure that you are prompted to manually rebuild.

Para deshabilitar la revinculación después de Editar y continuarTo disable relinking after Edit and Continue

  1. En el menú Depurar , elija Opciones y configuración.On the Debug menu, choose Options and Settings.

  2. En el cuadro de diálogo Opciones , bajo el nodo Depuración , seleccione el nodo Editar y continuar .In the Options dialog box, under the Debugging node, and select the Edit and Continue node.

  3. Desactive la casilla Volver a vincular cambios de códigos después de depurar .Clear the Relink code changes after debugging check box.

Limitaciones de los encabezados precompiladosPrecompiled Header Limitations

De forma predeterminada, Editar y continuar carga y procesa los encabezados precompilados en segundo plano con el fin de acelerar el proceso de los cambios en el código.By default, Edit and Continue loads and processes precompiled headers in the background to speed up processing of code changes. La carga de encabezados precompilados requiere la asignación de memoria física, lo cual puede constituir un problema si la compilación se lleva a cabo en un equipo con memoria RAM limitada.Loading precompiled headers requires allocation of physical memory, which can be a problem if you are compiling on a machine with limited RAM. Es posible saber si esto causará problemas mediante la utilización del Administrador de tareas de Windows para determinar la cantidad de memoria física disponible mientras se lleva a cabo la depuración.You can determine if this might be a problem by using the Windows Task Manager to determine the amount of available physical memory while you are debugging. Si esta cantidad es mayor que el tamaño de los encabezados precompilados, Editar y continuar no debería presentar ningún problema.If this amount is greater than the size of your precompiled headers, Edit and Continue should have no problem. Si es inferior al tamaño de los encabezados precompilados, puede evitar que Editar y continuar cargue dichos encabezados en segundo plano.If the amount is less than the size of your precompiled headers, you can prevent Edit and Continue from loading precompiled headers in the background.

Para deshabilitar la carga en segundo plano de los encabezados precompilados para Editar y continuarTo disable background loading of precompiled headers for Edit and Continue

  1. En el menú Depurar , elija Opciones y configuración.On the Debug menu, choose Options and Settings.

  2. En el cuadro de diálogo Opciones , bajo el nodo Depuración , seleccione el nodo Editar y continuar .In the Options dialog box, under the Debugging node, and select the Edit and Continue node.

  3. Desactive la casilla Permitir compilación previa .Clear the Allow Precompiling check box.

Limitaciones de los atributos IDLIDL Attribute Limitations

Con el modo Editar y continuar no se pueden regenerar los archivos de definición de interfaz (IDL).Edit and Continue does not regenerate interface definition (IDL) files. Por tanto, los cambios realizados en los atributos IDL no se reflejarán durante la depuración.Therefore, changes to IDL attributes will not be reflected while you are debugging. Para ver el resultado de los cambios en los atributos IDL, debe detener la depuración y recompilar la aplicación.To see the result of changes to IDL attributes, you must stop debugging and rebuild your app. Editar y continuar no genera ningún error o advertencia si cambian los atributos IDL.Edit and Continue does not generate an error or warning if IDL attributes have changed. Para obtener más información, vea Atributos IDL.For more information, see IDL Attributes.

Vea tambiénSee Also

Edit and Continue (Visual C++)Edit and Continue (Visual C++)