Creación de un mapa visual de la pila de llamadas durante la depuración (C#, Visual Basic, C++, JavaScript)

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.

Para más información sobre los comandos y las acciones que puede usar al trabajar con mapas de código, vea Examinar y reorganizar mapas de código.

Importante

Solo puede crear mapas de código en Visual Studio Enterprise Edition.

A continuación se muestra una vista rápida de un mapa de código:

Debugging with call stacks on code maps

Asignar la pila de llamadas

  1. En un proyecto de C#, Visual Basic, C++ o JavaScript en Visual Studio Enterprise, inicie la depuración seleccionando Depurar>Iniciar depuración o presionando F5.

  2. Cuando la aplicación entra en modo de interrupción o se ejecuta una función paso a paso por instrucciones, seleccione Depurar>Mapa de código, o presione Ctrl+Mayús+` .

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

    See call stack on code map

El mapa de código se actualiza automáticamente a medida que continúa con la depuración. Cambiar los elementos o el diseño del mapa no afecta al código de ninguna manera. No dude en cambiar el nombre, mover o quitar contenido del mapa.

Para más información sobre un elemento, mantenga el puntero del mouse sobre él y examine su información sobre herramientas. También puede seleccionar Leyenda en la barra de herramientas para obtener información sobre lo que significa cada icono.

Code Map Legend

Nota:

El mensaje El diagrama se puede basar en una versión anterior del código de la parte superior del mapa de código significa que 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ódigo externo del mapa

De forma predeterminada, en el mapa solo se muestra su código. Para ver el código externo en el mapa:

  • Haga clic con el botón derecho en la ventana Pila de llamadas y seleccione Mostrar código externo:

    Display external code using the Call Stack window

  • O bien, anule la selección de Habilitar Solo mi código en Herramientas de Visual Studio (o Depurar) >Opciones>Depuración:

    Show external code using Options dialog

Control del diseño del mapa

Cambiar el diseño del mapa no afecta al código de ninguna manera.

Para controlar el diseño del mapa, seleccione el menú Diseño en la barra de herramientas del mapa.

En el menú Diseño, puede:

  • Cambie el diseño predeterminado.
  • Detener la reorganización automática del mapa anulando la selección de Diseñar automáticamente al depurar.
  • Reorganizar el mapa lo menos posible al agregar elementos desactivando Diseño incremental.

Hacer notas sobre el código

Puede agregar comentarios para el hacer seguimiento de lo que pasa en el código.

Para agregar un comentario, haga clic con el botón derecho en el mapa de código, seleccione Editar>Nuevo comentario y escriba el comentario.

Para agregar una nueva línea a un comentario, presione Mayús+Entrar.

Add comment to call stack on code map

Actualizar el mapa con la siguiente pila de llamadas

Al ejecutar la aplicación en el siguiente punto de interrupción o ejecutar una función paso a paso por instrucciones, el mapa agrega automáticamente nuevas pilas de llamadas.

Update code map with next call stack

Para que el mapa deje de agregar automáticamente nuevas pilas de llamadas, seleccione Show call stack on code map automatically en la barra de herramientas del mapa de código. El mapa continúa resaltando las pilas de llamadas existentes. Para agregar manualmente la pila de llamadas actual al mapa, presione Ctrl+Mayús+` .

Agregar código relacionado al mapa

Ahora que ya tiene un mapa, en C# o Visual Basic, puede agregar elementos, tales como campos, propiedades y otros métodos, para hacer el seguimiento de lo que pasa en el código.

Para ir a la definición de un método en el código, haga doble clic en el método en el mapa o selecciónelo y presione F12, o bien haga clic con el botón derecho en él y seleccione Ir a definición.

Go to code definition for a method on code map

Para agregar elementos cuyo seguimiento quiere realizar, haga clic con el botón derecho en un método y seleccione esos elementos. Los elementos agregados más recientemente aparecen en verde.

Fields related to 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. Para activar y desactivar esta característica, seleccione el botón Incluir primarios en la barra de herramientas del mapa de código o presione Ctrl mientras agrega elementos.

Show fields in a method on call stack code map

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 una aplicación 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 la aplicación, el mapa agrega la nueva llamada de undo a Repaint:

Add new method call to call stack on code map

Uso compartido del mapa con otros usuarios

Puede exportar un mapa, enviarlo a otros usuarios con Microsoft Outlook, guardarlo en la solución y protegerlo en el control de versiones.

Para compartir o guardar el mapa, use Compartir en la barra de herramientas del mapa de código.

Share call stack code map with others