Compartir a través de


Cómo: Depurar en un clúster de alto rendimiento

La depuración de un programa multiproceso en un clúster de alto rendimiento es similar a la depuración de un programa normal en un equipo remoto. Sin embargo, hay algunas consideraciones adicionales. Para conocer los requisitos de configuración remotos generales, vea Depuración y diagnóstico remotos.

Al depurar en un clúster de alto rendimiento, puede utilizar todas las ventanas de depuración de Visual Studio y las técnicas que están disponibles para la depuración remota. Sin embargo, dado que está depurando de forma remota, la ventana de la consola externa no está disponible.

Las ventanas Procesos y Subprocesos son especialmente útiles para depurar aplicaciones paralelas. Para obtener sugerencias sobre el uso de estas ventanas, vea <PAVE OVER> Cómo: Utilizar la ventana Procesos y Cómo: Utilizar la ventana Subprocesos.

En los procedimientos siguientes se presentan algunas técnicas que son especialmente útiles para depurar en un clúster de alto rendimiento.

Al depurar una aplicación paralela, puede establecer un punto de interrupción en un subproceso, proceso o equipo determinado. Para hacer esto, cree un punto de interrupción normal y, a continuación, agregue un filtro de punto de interrupción.

Para abrir el cuadro de diálogo Filtro del punto de interrupción

  1. Haga clic con el botón secundario del mouse en un glifo de punto de interrupción en la ventana Código fuente, Desensamblado, Pila de llamadas o Puntos de interrupción.

  2. En el menú contextual, haga clic en Filtro. Esta opción puede aparecer en el nivel superior o en el submenú de Puntos de interrupción.

Para establecer un punto de interrupción en un equipo concreto

  1. Obtenga el nombre del equipo en la ventana Procesos.

  2. Seleccione un punto de interrupción y abra el cuadro de diálogo Filtro del punto de interrupción como se describió en el procedimiento anterior.

  3. En el cuadro de diálogo Filtro del punto de interrupción, escriba:

    MachineName =nombreDelEquipo

    Para crear un filtro más complejo, puede combinar cláusulas con &, el operador AND, ||, el operador OR, !, el operador NOT y paréntesis.

  4. Haga clic en Aceptar.

Para establecer un punto de interrupción en un proceso concreto

  1. Obtenga el nombre o el número de id. del proceso en la ventana Procesos.

  2. Seleccione un punto de interrupción y abra el cuadro de diálogo Filtro del punto de interrupción tal como se describió en el primer procedimiento.

  3. En el cuadro de diálogo Filtro del punto de interrupción, escriba:

    ProcessName = nombreDelProceso

    -O bien-

    ProcessID = númeroDeIddelProceso

    Para crear un filtro más complejo, puede combinar cláusulas con &, el operador AND, ||, el operador OR, !, el operador NOT y paréntesis.

  4. Haga clic en Aceptar.

Para establecer un punto de interrupción en un subproceso concreto

  1. Obtenga el nombre o el número de id. del subproceso en la ventana Subprocesos.

  2. Seleccione un punto de interrupción y abra el cuadro de diálogo Filtro del punto de interrupción tal como se describió en el primer procedimiento.

  3. En el cuadro de diálogo Filtro del punto de interrupción, escriba:

    ThreadName = nombreDelSubproceso

    -O bien-

    ThreadID = númeroDeIdDelSubproceso

    Para crear un filtro más complejo, puede combinar cláusulas con &, el operador AND, ||, el operador OR, !, el operador NOT y paréntesis.

  4. Haga clic en Aceptar.

Ejemplo

En el ejemplo siguiente se muestra cómo crear un filtro para un punto de interrupción en un equipo denominado marvin y un subproceso denominado fourier1.

(MachineName = marvin) & (ThreadName = fourier1)

Vea también

Tareas

Cómo: Utilizar la ventana Subprocesos

Conceptos

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

Otros recursos

Depurar aplicaciones multiproceso en Visual Studio

Depuración y diagnóstico remotos

<PAVE OVER> Cómo: Utilizar la ventana Procesos

<PAVE OVER> Procesos y subprocesos