Compartir a través de


Depurar aplicaciones multiproceso en Visual Studio

Un subproceso es una secuencia de instrucciones a la que el sistema operativo asigna tiempo de procesador. Cada proceso que se ejecuta en el sistema operativo contiene al menos un subproceso. Los procesos que tienen más de un subproceso se denominan multiproceso.

Equipos con varios procesadores, con varios núcleos o con tecnología hyperthreading pueden ejecutar varios subprocesos al mismo tiempo. El procesamiento en paralelo de varios subprocesos puede mejorar notablemente el rendimiento del programa, pero también puede dificultar la depuración porque incluye la necesidad de efectuar el seguimiento de varios subprocesos.

Además, multithreading incluye algunos tipos de errores nuevos. Por ejemplo, a menudo dos o más subprocesos deben tener acceso al mismo recurso, pero únicamente un subproceso puede tener acceso al recurso sin ningún riesgo a la vez. Se necesita algún formulario de exclusión mutua para asegurarse de que únicamente uno subproceso está teniendo acceso al recurso a la vez. Si se realiza la exclusión mutua incorrectamente, puede crear una condición interbloqueo donde ningún subproceso se puede ejecutar. Los interbloqueos pueden ser un problema especialmente grave para realizar la depuración.

Visual Studio 2012 proporciona una ventana Subprocesos mejorada, la nueva ventana Subprocesos de GPU, la nueva ventana Inspección paralela y otras mejoras de la interfaz de usuario que facilitan la depuración multiproceso. La mejor manera de obtener información sobre las nuevas características de la interfaz de subprocesamiento es realizar los tutoriales. Vea Tutorial: Depurar una aplicación multiproceso y Tutorial: Depurar una aplicación de C++ AMP.

Visual Studio también proporciona eficaces puntos de interrupción y puntos de seguimiento, que pueden resultar muy útiles para depurar aplicaciones multiproceso. Puede utilizar filtros de puntos de interrupción para colocar puntos de interrupción en subprocesos individuales. Vea Puntos de interrupción: Usar números de llamadas, funciones de pila de llamadas y condiciones para realizar interrupciones cuando y donde quiera en el depurador de Visual Studio.

Depurar una aplicación multiproceso que tiene una interfaz de usuario puede resultar especialmente difícil. En ese caso, puede que considere ejecutar la aplicación en un segundo equipo y usar la depuración remota. Para obtener más información, vea Depuración y diagnóstico remotos.

En esta sección

Secciones relacionadas

Vea también

Otros recursos

Depurar procesos y subprocesos en Visual Studio

Depuración y diagnóstico remotos