vscode visual tutorial tag studio para instalar extensiones espaƱol color code closing brackethighlighter visual-studio debugging

tutorial - "Secretos ocultos" del depurador Visual Studio.NET?



visual studio code highlight closing tag (14)

Por mucho que generalmente no me gustan las discusiones / publicaciones subjetivas sobre SO, realmente he llegado a apreciar el conjunto de publicaciones "Secretos ocultos" que la gente ha reunido. Brindan una excelente visión general de algunas herramientas que normalmente se pierden y que, de otro modo, es posible que ahora descubra.

Para esta pregunta, me gustaría explorar el depurador Visual Studio .NET. ¿Cuáles son algunos de los "secretos ocultos" en el depurador de VS.NET que utiliza a menudo o recientemente descubierto y desearía haberlo sabido hace mucho tiempo?


Algunas teclas rápidas útiles.

  • F11 para entrar en un método.
  • Shift-F11 para salir de un método.
  • F10 para pasar sobre un método.

Como desarrollador web que trabaja con servicios web que están dentro de la misma solución que mi código front-end la mayoría de las veces, encontré la capacidad de "adjuntar" a un proceso para ahorrar MUCHA TIEMPO.

Antes de encontrar esta joya oculta, siempre tenía que establecer un punto de interrupción en un código de front-end que llamaba a un método de servicio web y entrar en él. Ahora que sé sobre este truco / función, puedo establecer fácilmente puntos de interrupción en cualquier parte de mi código que quiera, lo que me ahorra mucho tiempo y esfuerzo.



Cosas que uso a menudo:

  • Haga clic en el elemento del menú "Depurar | Excepciones" (o Ctrl-D, E para abreviar) y puede habilitar la interrupción en el momento en que se lanza cualquier excepción, o elegir no interrumpir ciertas excepciones.

  • Puede configurar el depurador para descargar algunos de los códigos fuente del marco y los símbolos de un servidor MS y acceder al código de la infraestructura. (Algunas bibliotecas, como System.ServiceModel, aún no están disponibles). En las ventanas de opciones en Depuración. Vea MSDN How-To .

  • Puede usar el depurador VS.NET para depurar Javascript que se ejecuta en IE. Solo necesita instalar el depurador de JavaScript de IE y habilitar la depuración de JavaScript en la configuración de IE. Luego, en un error de JS, aparecerá un cuadro de diálogo "¿Desea depurar?" Y puede elegir depurar en VS.NET.


Esto es algo viejo. Si agrega una expresión de reloj err,hr , esto mantendrá el resultado de GetLastError (), formateado como HRESULT (depurador de VC ++ solamente).


Para aplicaciones .net, System.Diagnostics tiene muchas cosas útiles para la depuración. La clase Debugger por ejemplo:

Debugger.Break(); // Programmatically set a break point Debugger.Launch(); // Launch the debugger if not already attached Debugger.IsAttached // Check if the debugger is attached

System.Diagnostics también tiene muchos buenos atributos. Los dos que he usado son el atributo de visualización del depurador para cambiar los detalles introducidos en la ventana locales y el atributo paso a paso para omitir el código que no le interesa depurar:

// Displays the value of Property1 for any "MyClass" instance in the debugger [DebuggerDisplay("{Property1}")] public class MyClass { public string Property1 { get; set; } [DebuggerStepThrough] public void DontStepInto() { // An action we don''t want to debug } }


Puede abrir y colocar un punto de interrupción en un archivo fuente si el archivo pertenece a otra solución (archivo externo). El depurador aún puede alcanzar el punto de interrupción. No es necesario abrir otra instancia de Visual Studio para depurar el archivo externo. Es útil en la depuración de servicios web a los que se accede. Esto funciona siempre que todas las fuentes estén actualizadas y compiladas.


Puede arrastrar el cursor de la línea actual (flecha amarilla) arriba y abajo de su código cuando la ejecución está en pausa.

Además, para habilitar esto durante la pausa en la excepción, primero debe hacer clic en "habilitar la edición" en los detalles de la excepción.

También puede hacer que VS falle en las excepciones manejadas marcando las de su interés en: Depurar-> Excepciones: Columna lanzada


Puede cargar extensiones windbg en el depurador de Visual Studio y usarlas desde la ventana inmediata.


Puede hacer clic con el botón derecho en un objeto en la ventana Inspección y hacer clic en Crear ID de objeto.

Asignará a esa instancia un número de ID, lo que le permitirá ver, en un gráfico de objeto complicado, qué objetos se refieren a la misma instancia.


Una de mis características favoritas es la opción "Cuándo golpear ..." disponible en un punto de interrupción. Puede imprimir un mensaje con el valor de una variable junto con mucha otra información, como por ejemplo:

  • $ADDRESS - Instrucción actual
  • $CALLER - Nombre de función anterior
  • $CALLSTACK - Pila de llamadas
  • $FUNCTION - Nombre de la función actual
  • $PID - ID del proceso
  • $PNAME - Nombre del proceso
  • $TID - ID de hilo
  • $TNAME - Nombre del hilo

También puede hacer que ejecute una macro, pero nunca he usado esa característica.



$exception en la ventana de observación mostrará la excepción que se está procesando actualmente, incluso si no tiene una captura que asigne la instancia de Exception a una variable con nombre.


  • La ventana de subprocesos, desde Debug -> Windows -> Threads. Puede congelar y descongelar hilos, y cambiar el hilo activo. Esto es asombroso al depurar o replicar un problema con una aplicación multihilo.
  • Puede arrastrar y soltar la flecha amarilla "Siguiente estado" a otro lugar. Cuando el programa se reanude, se reanudará la ejecución en esa declaración. Puede agregarlo a la barra de herramientas, una flecha azul llamada Establecer instrucción siguiente, pero no está allí por defecto.
  • Puede "deshacer" la navegación que realizó, como desplazarse, ir a otro archivo o saltar a una referencia. El atajo es ctrl-- (control negativo). De esa forma puede saltar a una función, examinar el código allí y volver a donde estaba sin mirar.