Share via


Depurar uno o varios procesos en Visual Studio

Aquí se indica cómo iniciar procesos de depuración, intercambiar procesos, interrumpir y continuar la ejecución, ejecutar paso a paso el código fuente, detener la depuración y finalizar o desasociar procesos.

Contenido

Configurar el comportamiento de ejecución de varios procesos

Buscar archivos de origen y de símbolos (.pdb)

Empezar varios procesos en una solución de VS, asociar a un proceso, empezar automáticamente un proceso en el depurador

Cambiar procesos, interrumpir y continuar la ejecución, ejecutar paso a paso el código fuente

Detener la depuración, terminar o desasociar procesos

Configurar el comportamiento de ejecución de varios procesos

De forma predeterminada, cuando varios procesos se ejecutan en el depurador, los comandos de interrupción, ejecución paso a paso y detención del depurador suelen afectar a todos los procesos. Por ejemplo, si un proceso se suspende en un punto de interrupción, también se suspenderá la ejecución de todos los demás procesos. Puede cambiar este comportamiento predeterminado para tener un mejor control sobre los destinos de los comandos de ejecución.

  1. En el menú Depurar, elija Opciones y configuración.

  2. En la página Depuración, General, desactive la casilla Interrumpir todos los procesos cuando se interrumpa uno.

Volver al principioContenido

Buscar archivos de origen y de símbolos (.pdb)

Para navegar por el código fuente de un proceso, el depurador necesita acceso a los archivos de código fuente y los archivos de símbolos del proceso. Vea Especificar archivos de código fuente y símbolos (.pdb) en el depurador de Visual Studio.

Si no puede tener acceso a los archivos de un proceso, puede navegar utilizando la ventana Desensamblado. Vea Cómo: Utilizar la ventana Desensamblador.

Volver al principioContenido

Empezar varios procesos en una solución de VS, asociar a un proceso, empezar automáticamente un proceso en el depurador

  • Empezar a depurar varios procesos en una solución de Visual Studio • Cambiar el proyecto de inicio • Iniciar un proyecto específico en una solución • Empezar varios proyectos en una solución • Asociar a un proceso • Iniciar automáticamente un proceso en el depurador

Nota

El depurador no se asocia automáticamente a un proceso secundario iniciado por un proceso depurado, aunque el proyecto secundario se encuentre en la misma solución.Para depurar un proceso secundario:

  • Realice la asociación al proceso secundario una vez iniciado.

    O bien

  • Configure Windows para iniciar automáticamente el proceso secundario en una nueva instancia del depurador.

Empezar a depurar varios procesos en una solución de Visual Studio

Si tiene más de un proyecto en una solución de Visual Studio que se puede ejecutar de forma independiente (proyectos que se ejecutan en procesos independientes), puede seleccionar qué proyectos desea que inicie el depurador.

Cambiar el tipo de inicio para un proyecto

Cambiar el proyecto de inicio

Para cambiar el proyecto de inicio de una solución, seleccione el proyecto en el Explorador de soluciones y, a continuación, elija Establecer como proyecto de inicio en el menú contextual.

Iniciar un proyecto específico en una solución

Para iniciar un proyecto de una solución sin cambiar el proyecto de inicio predeterminado, seleccione el proyecto en el Explorador de soluciones y, a continuación, elija Depurar en el menú contextual. A continuación, puede elegir Iniciar nueva instancia o Ir a nueva instancia.

Volver al principioEmpezar varios procesos en una solución de VS, asociar a un proceso, empezar automáticamente un proceso en el depurador

Volver al principioContenido

Empezar varios proyectos en una solución

  1. Seleccione la solución en el Explorador de soluciones y elija Propiedades en el menú contextual.

  2. Seleccione Propiedades comunes, Proyecto de inicio en el cuadro de diálogo Propiedades.

  3. Para cada proyecto que desee cambiar, elija Inicio, Iniciar sin depuraro Ninguno.

Volver al principioEmpezar varios procesos en una solución de VS, asociar a un proceso, empezar automáticamente un proceso en el depurador

Volver al principioContenido

Asociar a un proceso

El depurador también puede asociarse a los programas que se ejecutan en procesos externos a Visual Studio, incluidos los programas que se ejecutan en un dispositivo remoto. Después de asociar a un programa, podrá usar los comandos de ejecución del depurador, inspeccionar el estado del programa, etc. La capacidad de inspeccionar el programa podría ser limitada, en función de si el programa se ha generado con información de depuración, de si el usuario tiene acceso al código fuente del programa o de si el compilador JIT de Common Language Runtime realiza un seguimiento de la información de depuración.

Vea Crear asociaciones con procesos en ejecución con el depurador de Visual Studio para obtener más información.

Asociar a un proceso que se está ejecutando en el equipo local

Elija Depurar, Asociar al proceso. En el cuadro de diálogo Asociar al proceso, seleccione el proceso en la lista Procesos disponibles y elija Asociar.

Cuadro de diálogo Asociar al proceso

Volver al principioContenido

Iniciar automáticamente un proceso en el depurador

En ocasiones, es posible que tenga que depurar código de inicio de un programa iniciado por otro proceso. Por ejemplo, servicios y configuraciones personalizadas. En estos casos, se puede iniciar el depurador y asociarse automáticamente cuando se inicia la aplicación.

  1. Inicie el Editor del Registro (regedit.exe).

  2. Navegue a la carpeta HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options.

  3. Seleccione la carpeta de la aplicación que desee iniciar en el depurador.

    Si el nombre de la aplicación no aparece como carpeta secundaria, seleccione Image File Execution Options y, a continuación, elija Nueva, Clave en el menú contextual. Seleccione la nueva clave, elija Cambiar nombre en el menú contextual y escriba el nombre de la aplicación.

  4. En el menú contextual de la carpeta de aplicaciones, elija Nuevo, Valor de cadena.

  5. Cambie el nombre del nuevo valor de New Value a depurador.

  6. En el menú contextual de la entrada del depurador, elija Modificar.

  7. En el cuadro de diálogo Editar cadena, escriba vsjitdebugger.exe en el cuadro Datos del valor.

    Cuadro de diálogo Editar cadena

Entrada de inicio automático del depurador en regedit.exe

Volver al principioContenido

Cambiar procesos, interrumpir y continuar la ejecución, ejecutar paso a paso el código fuente

  • Cambiar entre procesos • Comandos de interrupción, paso y continuación

Cambiar entre procesos

Puede asociar varios procesos mientras realiza la depuración, pero sólo un proceso estará activo en el depurador al mismo tiempo. Puede establecer el proceso activo o actual en la Barra de herramientas de la ubicación de depuración o en la ventana Procesos. Para cambiar entre procesos, ambos procesos deben encontrarse en el modo de interrupción.

Para establecer el proceso actual

  • En la Barra de herramientas de la ubicación de depuración, elija Proceso para ver el cuadro de lista Proceso. Seleccione el proceso que desee designar como proceso actual.

    Cambiar entre procesos

    Si la barra de herramientas Ubicación de depuración no está visible, elija Herramientas, Personalizar. En la pestaña Barras de herramientas, elija Ubicación de depuración.

  • Abra la ventana Procesos (acceso directo: Ctrl+Alt+Z), busque el proceso que desea establecer como proceso actual y haga doble clic en él.

    Ventana Procesos

    El proceso actual se marca mediante una flecha amarilla.

Cuando se cambia a un proyecto, se establece como el proceso actual de la depuración. Cualquier ventana de depurador abierta mostrará el estado del proceso actual, así como todos los comandos de ejecución paso a paso que solo afecten al proceso actual.

Volver al principioCambiar procesos, interrumpir y continuar la ejecución, ejecutar paso a paso el código fuente

Volver al principioContenido

Comandos de interrupción, paso y continuación

Nota

De forma predeterminada, los comandos de interrupción, continuación y paso del depurador afectan a todos los procesos que se depuran.Para cambiar este comportamiento, vea Configurar el comportamiento de ejecución de varios procesos

Comando

Interrumpir todos los procesos cuando se interrumpa uno

Activado (valor predeterminado)

Interrumpir todos los procesos cuando se interrumpa uno

Borrado

MenúDepurar:

  • Interrumpir todos

Se interrumpen todos los procesos.

Se interrumpen todos los procesos.

MenúDepurar:

  • Continue

Se reanudan todos los procesos.

Se reanudan todos los procesos suspendidos.

MenúDepurar:

  • Paso a paso por instrucciones

  • Paso a paso por procedimientos

  • Paso a paso para salir

Se ejecutan todos los procesos mientras que el proceso actual se ejecuta paso a paso.

A continuación, se interrumpen todos los procesos.

El proceso actual se ejecuta paso a paso.

Se reanudan los procesos suspendidos.

Continúan los procesos en ejecución.

MenúDepurar:

  • Ir al proceso actual

  • Paso a paso por el proceso actual

  • Paso a paso para salir del procedimiento actual

N/D

El proceso actual se ejecuta paso a paso.

Otros procesos mantienen su estado existente (suspendido o en ejecución).

Ventana de código fuente

  • Punto de interrupción

Se interrumpen todos los procesos.

Solo se interrumpe el proceso de la ventana de código fuente.

Menú contextual de la ventana de código fuente:

  • Ejecutar hasta el cursor

La ventana de código fuente debe estar en el proceso actual.

Se ejecutan todos los procesos mientras se ejecuta el proceso de la ventana de código fuente hasta el cursor para, a continuación, interrumpirse.

A continuación, se interrumpen todos los demás procesos.

El proceso de la ventana de código fuente se ejecuta hasta el cursor.

Otros procesos mantienen su estado existente (suspendido o en ejecución).

Menú contextual de la ventanaProcesos:

  • Interrumpir proceso

N/D

Se interrumpe el proceso seleccionado.

Otros procesos mantienen su estado existente (suspendido o en ejecución).

Menú contextual de la ventanaProcesos:

  • Continuar proceso

N/D

Se reanuda el proceso seleccionado.

Otros procesos mantienen su estado existente (suspendido o en ejecución).

Volver al principioCambiar procesos, interrumpir y continuar la ejecución, ejecutar paso a paso el código fuente

Volver al principioContenido

Detener la depuración, terminar o desasociar procesos

  • Comandos de detención, finalización y desasociación

De forma predeterminada, si elige Depurar, Detener depuración cuando varios procesos están abiertos en el depurador, este finaliza o se desasocia de todos los procesos según cómo se abriera el proceso en el depurador:

  • Si el proceso actual se inició en el depurador, dicho proceso finalizará.

  • Si asoció el depurador al proceso actual, el depurador se desasociará del proceso y dejará el proceso en ejecución.

Por ejemplo, si comienza la depuración de un proceso de una solución de Visual Studio, asócielo a otro proceso en ejecución, y después elija Detener depuración, la sesión de depuración finaliza, el proceso que se inició en Visual Studio finaliza, mientras el proceso que asoció sigue en ejecución. Puede utilizar los siguientes procedimientos para controlar la manera en que se detiene la depuración.

Nota

La opción Interrumpir todos los procesos cuando se interrumpa uno no afecta a la detención de la depuración o la finalización o desasociación de los procesos.

Para cambiar la manera en que Detener depuración afecta a un proceso individual

  • Abra la ventana Procesos (acceso directo: Ctrl+Alt+Z). Seleccione un proceso y, a continuación, active o desactive la casilla Desasociar cuando se interrumpa la depuración.

Comandos de detención, finalización y desasociación

Comando

Descripción

MenúDepurar:

  • Detener la depuración

A menos que se cambie el comportamiento mediante la opción Desasociar cuando se interrumpa la depuración de la ventana Procesos:

  1. Finalizan los procesos iniciados por el depurador.

  2. Los procesos asociados se desasocian del depurador.

MenúDepurar:

  • Finalizar todo

Finalizan todos los procesos.

MenúDepurar:

  • Desasociar todo

El depurador se desasocia de todos los procesos.

Menú contextual de la ventanaProcesos:

  • Desasociar proceso

El depurador se desasocia del proceso seleccionado.

Otros procesos mantienen su estado existente (suspendido o en ejecución).

Menú contextual de la ventanaProcesos:

  • Terminar proceso

Finaliza el proceso seleccionado.

Otros procesos mantienen su estado existente (suspendido o en ejecución).

Menú contextual de la ventanaProcesos:

  • Desasociar cuando se interrumpa la depuración

Alterna el comportamiento de Depurar, Detener depuración para el proceso seleccionado:

  • Activado: el depurador se desasocia del proceso.

  • Desactivado: finaliza el proceso.

Volver al principioDetener la depuración, terminar o desasociar procesos

Volver al principioContenido

Vea también

Conceptos

Iniciar, interrumpir, recorrer paso por paso y ejecutar procesos a través del código y detener la depuración en Visual Studio

Depuración Just-In-Time en Visual Studio

Otros recursos

Especificar archivos de código fuente y símbolos (.pdb) en el depurador de Visual Studio

Crear asociaciones con procesos en ejecución con el depurador de Visual Studio

Depurar aplicaciones multiproceso en Visual Studio