Asignar métodos en la pila de llamadas durante la depuración en Visual Studio

Cree un mapa de código para hacer un seguimiento visual de la pila de llamadas durante la depuración. Puede hacer anotaciones en el mapa para llevar a cabo el seguimiento de lo que hace el código y poder concentrarse en encontrar errores.

Debugging with call stacks on code maps

Necesitará:

Asignar la pila de llamadas

  1. Inicie la depuración. (Teclado: F5)

  2. Cuando la aplicación entre en modo de interrupción o entre en una función, seleccione Mapa de código. (Teclado: Ctrl + Mayús + `)

    Choose Code Map to start mapping call stack

    La pila de llamadas actual aparece en naranja en un nuevo mapa de código:

    See call stack on code map

    El mapa se actualiza automáticamente a la vez que continúa depurando. Consulte Actualizar el mapa con la siguiente pila de llamadas.

Hacer notas sobre el código

Agregue comentarios para el hacer seguimiento de lo que pasa en el código. Para agregar una nueva línea a un comentario, presione Mayús + Volver.

Add comment to call stack on code map

Actualizar el mapa con la siguiente pila de llamadas

Ejecute la aplicación hasta el siguiente punto de interrupción o entre en una función. El mapa agrega una nueva pila de llamadas.

Update code map with next call stack

Agregar código relacionado al mapa

Ahora ya tiene un mapa, ¿qué viene después? Si trabaja con C# o Visual Basic, agregue elementos, como campos, propiedades y otros métodos, para hacer el seguimiento de lo que pasa en el código.

Haga doble clic en un método para ver su definición de código, o bien use el menú contextual para el método. (Teclado: seleccione el método en el mapa y presione F12)

Go to code definition for a method on code map

Agregue los elementos de los que desee realizar el seguimiento al mapa.

Show fields in a method on call stack code map

Nota:

De forma predeterminada, al agregar elementos al mapa también se agregan nodos del grupo primario, como clase, espacio de nombres y ensamblado. Aunque esto es útil, puede mantener la simplicidad del mapa si desactiva esta característica mediante el botón Incluir primarios de la barra de herramientas del mapa, o bien presionando CTRL al agregar elementos.

Fields related to a method on call stack code map

Aquí puede ver fácilmente los métodos que utilizan los mismos campos. Los elementos agregados más recientemente aparecen en verde.

Continúe con la compilación del mapa para ver más código.

See methods that use a field: call stack code map

Methods that use a field on call stack code map

Buscar errores usando el mapa

La visualización del código puede ayudarle a encontrar errores con mayor rapidez. Por ejemplo, suponga que está investigando un error en un programa de dibujo. Cuando dibuja una línea e intenta deshacerla, no sucede nada hasta que dibuja otra línea.

Por tanto, establece los puntos de interrupción en los métodos clear, undo y Repaint, inicia la depuración y compila un mapa como este:

Add another call stack to code map

Observe que todos los gestos de usuario en el mapa llaman a Repaint, salvo undo. Esto podría explicar por qué undo no funciona inmediatamente.

Tras corregir el error y seguir ejecutando el programa, el mapa agrega la nueva llamada de undo a Repaint:

Add new method call to call stack on code map

Preguntas y respuestas

  • No todas las llamadas aparecen en el mapa. ¿Por qué?

    De forma predeterminada, en el mapa solo se muestra su código. Para ver el código externo, actívelo en la ventana Pila de llamadas:

    Display external code using the Call Stack window

    o desactive Habilitar Solo mi código en las opciones de depuración de Visual Studio:

    Show external code using Options dialog

  • ¿Afecta el cambio del mapa al código?

    Cambiar el mapa no afecta al código en forma alguna. No dude en cambiar el nombre, mover o quitar contenido del mapa.

  • ¿Qué significa este mensaje: "El diagrama se puede basar en una versión anterior del código"?

    El código podría haber cambiado después de la última actualización del mapa. Por ejemplo, una llamada en el mapa tal vez ya no exista en el código. Cierre el mensaje y, a continuación, intente volver a compilar la solución antes de actualizar el mapa de nuevo.

  • ¿Cómo puedo controlar el diseño del mapa?

    Abra el menú Diseño en la barra de herramientas del mapa:

    • Cambie el diseño predeterminado.

    • Para que el mapa deje de reorganizarse automáticamente, desactive la opción Diseñar automáticamente al depurar.

    • Para reorganizar el mapa lo mínimo posible cuando se agregan elementos, desactive Diseño incremental.

  • ¿Es posible compartir el mapa con otros usuarios?

    Puede exportar el mapa, enviarlo a otros usuarios si tiene Microsoft Outlook o guardarlo en la solución para protegerlo en el control de código fuente.

    Share call stack code map with others

  • ¿Cómo se detiene la agregación automática de nuevas pilas de llamadas al mapa?

    Seleccione Button - Show call stack on code map automatically en la barra de herramientas del mapa. Para agregar manualmente la pila de llamadas actual al mapa, presione Ctrl + Mayús + ` .

    El mapa continuará resaltando las pilas de llamadas existentes mientras se está depurando.

  • ¿Qué significan los iconos y las flechas de los elementos?

    Para obtener más información sobre un elemento, mueva el puntero del mouse sobre él y examine la información sobre herramientas del elemento. También puede mirar la Leyenda para saber el significado de cada icono.

    What do icons on the call stack code map mean?

    Vea:

  • Asignar la pila de llamadas

  • Hacer notas sobre el código

  • Actualizar el mapa con la siguiente pila de llamadas

  • Agregar código relacionado al mapa

  • Buscar errores usando el mapa