Asignar métodos en la pila de llamadas durante la depuración en Visual StudioMap methods on the call stack while debugging in Visual Studio

Cree un mapa de código para realizar un seguimiento la pila de llamadas durante la depuración.Create a code map to visually trace the call stack while you're debugging. 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.You can make notes on the map to track what the code is doing so you can focus on finding bugs.

Depuración con pilas de llamadas en mapas de códigoDebugging with call stacks on code maps

Necesitará:You'll need:

Asignar la pila de llamadasMap the call stack

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

  2. Cuando la aplicación entra en modo de interrupción o entre en una función, elija mapa de código.After your app enters break mode or you step into a function, choose Code Map. (Teclado: Ctrl + MAYÚS + `)(Keyboard: Ctrl + Shift + `)

    Elegir mapa de código para iniciar la pila de llamadas de asignaciónChoose Code Map to start mapping call stack

    La pila de llamadas actual aparece en naranja en un nuevo mapa de código:The current call stack appears in orange on a new code map:

    Ver pila de llamadas en mapa de códigoSee call stack on code map

    El mapa se actualiza automáticamente a la vez que continúa depurando.The map will update automatically while you continue debugging. Vea actualizar el mapa con la siguiente pila de llamadas.See Update the map with the next call stack.

Hacer notas sobre el códigoMake notes about the code

Agregar comentarios para realizar un seguimiento de lo que está sucediendo en el código.Add comments to track what's happening in the code. Para agregar una nueva línea en un comentario, presione MAYÚS + ENTRAR.To add a new line in a comment, press Shift + Return.

Agregar comentario a la pila de llamadas en mapa de códigoAdd comment to call stack on code map

Actualizar el mapa con la siguiente pila de llamadasUpdate the map with the next call stack

Ejecute la aplicación hasta el siguiente punto de interrupción o entre en una función.Run your app to the next breakpoint or step into a function. El mapa agrega una nueva pila de llamadas.The map adds a new call stack.

Actualizar el mapa de código con la siguiente pila de llamadasUpdate code map with next call stack

Agregar código relacionado al mapaAdd related code to the map

¿Ahora ya tiene un mapa: lo que a continuación?Now you've got a map - what next? Si está trabajando con C# o Visual Basic, agregue elementos, como campos, propiedades y otros métodos, para realizar un seguimiento de lo que está sucediendo en el código.If you're working with C# or Visual Basic, add items, such as fields, properties, and other methods, to track what's happening in the code.

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.Double-click a method to see its code definition, or use the shortcut menu for the method. (Teclado: seleccione el método en el mapa y presione F12)(Keyboard: Select the method on the map and press F12)

Vaya a la definición de código de un método en el mapa de códigoGo to code definition for a method on code map

Agregue los elementos de los que desee realizar el seguimiento al mapa.Add the items that you want to track on the map.

Mostrar campos en un método en el mapa de código de pila de llamadasShow 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.By default, adding items to the map also adds the parent group nodes such as the class, namespace, and assembly. Aunque esto es útil, puede simplificar el mapa si desactiva esta característica mediante el incluir elementos primarios botón en la barra de herramientas del mapa, o bien presionando CTRL cuando se agregan elementos.While this is useful, you can keep the map simple by turning off this feature using the Include Parents button on the map toolbar, or by pressing CTRL when you add items.

Campos relacionados con un método en el mapa de código de pila de llamadasFields related to a method on call stack code map

Aquí puede ver fácilmente los métodos que utilizan los mismos campos.Here you can easily see which methods use the same fields. Los elementos agregados más recientemente aparecen en verde.The most recently added items appear in green.

Continúe con la compilación del mapa para ver más código.Continue building the map to see more code.

Ver métodos que usan un campo: mapa de código de pila de llamadasSee methods that use a field: call stack code map

Métodos que usan un campo en el mapa de código de pila de llamadasMethods that use a field on call stack code map

Buscar errores usando el mapaFind bugs using the map

La visualización del código puede ayudarle a encontrar errores con mayor rapidez.Visualizing your code can help you find bugs faster. Por ejemplo, suponga que se está investigando un error en un programa de dibujo.For example, suppose you're investigating a bug in a drawing program. Cuando dibuja una línea e intenta deshacerla, no sucede nada hasta que dibuja otra línea.When you draw a line and try to undo it, nothing happens until you draw another line.

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:So you set breakpoints in the clear, undo, and Repaint methods, start debugging, and build a map like this one:

Agregar otra pila de llamadas al mapa de códigoAdd another call stack to code map

Observe que todos los gestos de usuario en el mapa llaman a Repaint, salvo undo.You notice that all the user gestures on the map call Repaint, except for undo. Esto podría explicar por qué undo no funciona inmediatamente.This might explain why undo doesn't work immediately.

Tras corregir el error y seguir ejecutando el programa, el mapa agrega la nueva llamada de undo a Repaint:After you fix the bug and continue running the program, the map adds the new call from undo to Repaint:

Agregar nuevo método a la llamada a otra pila en el mapa de códigoAdd new method call to call stack on code map

Preguntas y respuestasQ & A

  • No todas las llamadas aparecen en el mapa. ¿Por qué?Not all calls appear on the map. Why?

    De forma predeterminada, en el mapa solo se muestra su código.By default, only your own code appears on the map. Para ver el código externo, actívelo en la pila de llamadas ventana:To see external code, turn it on in the Call Stack window:

    Mostrar código externo mediante la ventana Pila de llamadasDisplay external code using the Call Stack window

    o desactive la opción habilitar solo mi código en las opciones de depuración de Visual Studio:or turn off Enable Just My Code in the Visual Studio debugging options:

    Mostrar código externo mediante el cuadro de diálogo OpcionesShow external code using Options dialog

  • ¿Cambiar el mapa afecta el código?Does changing the map affect the code?

    Cambiar el mapa no afecta al código de ninguna manera.Changing the map doesn't affect the code in any way. No dude en cambiar el nombre, mover o quitar contenido del mapa.Feel free to rename, move, or remove anything on the map.

  • ¿Qué significa este mensaje: "el diagrama se puede basar en una versión anterior del código"?What does this message mean: "The diagram may be based on an older version of the code"?

    El código podría haber cambiado después de la última actualización del mapa.The code might have changed after you last updated the map. Por ejemplo, una llamada en el mapa tal vez ya no exista en el código.For example, a call on the map might not exist in code anymore. Cierre el mensaje y, a continuación, intente volver a compilar la solución antes de actualizar el mapa de nuevo.Close the message, then try rebuilding the solution before updating the map again.

  • ¿Cómo se puede controlar el diseño del mapa?How do I control the map's layout?

    Abra la diseño menú en la barra de herramientas de asignación:Open the Layout menu on the map toolbar:

    • Cambie el diseño predeterminado.Change the default layout.

    • Para dejar de reorganizar el mapa automáticamente, desactive la opción diseñar automáticamente al depurar.To stop rearranging the map automatically, turn off Automatically Layout when Debugging.

    • Para reorganizar el mapa lo mínimo posible cuando se agregan elementos, desactive la opción diseño Incremental.To rearrange the map as little as possible when you add items, turn off Incremental Layout.

  • ¿Puedo compartir el mapa con otros usuarios?Can I share the map with others?

    Puede exportar el mapa, enviarlo a otros usuarios si tiene Microsoft Outlook o guardarlo en la solución para protegerlo en el control de versiones de Team Foundation.You can export the map, send it to others if you have Microsoft Outlook, or save it to your solution so you can check it into Team Foundation version control.

    Compartir el mapa de código de pila de llamadas con otrosShare call stack code map with others

  • ¿Cómo se impide la asignación de agregar automáticamente nuevas pilas de llamadas?How do I stop the map from adding new call stacks automatically?

    Elija botón - pila de llamadas de mostrar en mapa de código automáticamente en la barra de herramientas del mapa.Choose Button - Show call stack on code map automatically on the map toolbar. Para agregar manualmente la pila de llamadas actual al mapa, presione Ctrl + MAYÚS + `.To manually add the current call stack to the map, press Ctrl + Shift + `.

    El mapa continuará resaltando las pilas de llamadas existentes en el mapa durante la depuración.The map will continue highlighting existing call stacks on the map while you're debugging.

  • ¿Qué los iconos de los elementos y las flechas significan?What do the item icons and arrows mean?

    Para obtener más información sobre un elemento, mueva el puntero del mouse sobre él y buscar información sobre herramientas del elemento.To get more info about an item, move the mouse pointer over it and look at the item's tooltip. También puede mirar el leyenda para obtener información sobre lo que significa cada icono.You can also look at the Legend to learn what each icon means.

    ¿Qué significan los iconos en el mapa de código de la pila de llamadas? What do icons on the call stack code map mean?

    Vea:See:

  • Asignar la pila de llamadasMap the call stack

  • Hacer notas sobre el códigoMake notes about the code

  • Actualizar el mapa con la siguiente pila de llamadasUpdate the map with the next call stack

  • Agregar código relacionado al mapaAdd related code to the map

  • Buscar errores usando el mapaFind bugs using the map

Vea tambiénSee Also