Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nota:
La funcionalidad de depuración de instantáneas ha quedado obsoleta y ya no estará disponible en las versiones más recientes de Visual Studio 2022, así como en versiones futuras. Aunque no hay ningún reemplazo exacto, hay otras herramientas que pueden proporcionar diagnósticos útiles:
La depuración de retroceso temporal en Visual Studio Enterprise puede registrar una aplicación web que se ejecuta en una máquina virtual (VM) de Azure y, posteriormente, reconstruir y reproducir con precisión la trayectoria de ejecución. Time Travel Debugging (TTD) se agregó a Visual Studio 2019 Enterprise como característica de versión preliminar y ahora se integra en el depurador de instantáneas de Visual Studio.
La depuración con retroceso temporal te permite retroceder y ejecutar de nuevo cada línea de código tantas veces como quieras. Este procedimiento puede ayudarle a aislar e identificar problemas que pueden producirse solo en entornos de producción.
La captura de una grabación de depuración de viaje en el tiempo no detiene la app, pero agrega una sobrecarga significativa al proceso en ejecución. La cantidad de ralentización depende de factores como el tamaño del proceso y el número de subprocesos activos.
En este tutorial, usted hará lo siguiente:
- Inicie snapshot Debugger con TTD.
- Establezca un punto de referencia y recopile una grabación de viaje temporal.
- Depurar la grabación del viaje en el tiempo.
Prerrequisitos
Visual Studio Enterprise 2019 o posterior con la carga de trabajo de desarrollo de Azure instalada.
En el Instalador de Visual Studio, asegúrese de que Snapshot Debugger está seleccionado en Depuración y pruebas en la pestaña Componentes individuales .
Una aplicación web de ASP.NET (AMD64) que se ejecuta en .NET Framework 4.8 o posterior en una máquina virtual de Azure.
Adjuntar el depurador de instantáneas
Abra el proyecto de la aplicación que desea depurar.
Importante
Asegúrese de abrir la misma versión del código fuente que se publica en la máquina virtual de Azure.
Elija Depurar > Conectar Debugger de Snapshot. Seleccione la máquina virtual de Azure en la que se implementa la aplicación web y una cuenta de Azure Storage y, a continuación, seleccione Asociar.
Importante
La primera vez que seleccione Asociar depurador de instantáneas, IIS se reinicia automáticamente en la máquina virtual.
Visual Studio ahora está en modo de depuración de instantáneas.
Nota:
La extensión de sitio de Application Insights también admite la depuración de instantáneas. Si recibe un mensaje de error de extensión de sitio desactualizada, consulte Actualización de la extensión del sitio para obtener detalles sobre cómo actualizar.
Los metadatos de los módulos no se activan inicialmente. Vaya a la aplicación web para cargar los módulos.
La ventana Módulos muestra cuándo se cargan todos los módulos para la máquina virtual de Azure. Para abrir la ventana Módulos, seleccione Depurar>módulos de Windows>.
Una vez cargados todos los módulos, puede seleccionar el botón Iniciar recopilación en la barra de herramientas de Visual Studio.
Establecer un punto de ajuste
Para establecer un punto de acoplamiento, en el editor de código, haga clic en el margen izquierdo junto a un método que le interese. Asegúrese de saber que el código se ejecuta.
Haga clic con el botón derecho en el icono de esfera hueca del punto de acoplamiento y elija Acciones para mostrar la ventana Configuración de instantáneas .
Tomar la instantánea
Seleccione Iniciar recopilación en la barra de herramientas para activar el punto de captura.
Al activar el punto de captura, registra una instantánea cuando se ejecuta la línea de código en la que está colocado. La ejecución podría requerir una solicitud en el servidor. Para forzar que su punto de ajuste se active, navegue a la vista del navegador de su sitio web y realice las acciones necesarias.
De forma predeterminada, el punto de captura solo toma una instantánea. Una vez que el snappoint captura una instantánea, se apaga. Si desea capturar otra instantánea en el punto de captura, puede activar de nuevo el punto de captura seleccionando Actualizar colección.
Depurar una grabación de viaje en el tiempo
Cuando se alcanza el punto de acoplamiento, aparece una instantánea en la ventana Herramientas de diagnóstico . Si esta ventana no está abierta, ábrala seleccionando Depurar>Windows>Mostrar herramientas de diagnóstico.
Seleccione Ver instantánea para abrir la grabación de viajes en el tiempo en el editor de código.
Puede ejecutar todas las líneas de código que registra la depuración de viaje de tiempo mediante los botones Continuar y Continuar inverso .
También puede usar la barra de herramientas Depurar para mostrar la siguiente instrucción, Entrar, Pasar por alto, Salir, Retroceder a la instrucción, Retroceder por todas partes y Retroceder fuera.
También puede usar las ventanas Variables Locales, Inspección y Pila de Llamadas de Visual Studio para evaluar expresiones.
El sitio web sigue activo y los usuarios finales no se ven afectados por la actividad de depuración de viajes en el tiempo.
Para obtener más información y ayuda, consulte Resolución de problemas y problemas ya conocidos para la depuración de instantáneas en Visual Studio.
Establecimiento de un punto de acoplamiento condicional
Si es difícil volver a crear un estado determinado en la aplicación, considere la posibilidad de usar un punto de acoplamiento condicional. Los puntos de acoplamiento condicionales ayudan a evitar la recopilación de una grabación hasta que la aplicación entra en un estado deseado, como cuando una variable tiene un valor determinado. Para obtener más información sobre cómo establecer condiciones basadas en expresiones, filtros o recuentos de aciertos, vea Condiciones de punto de interrupción.
Contenido relacionado
En este tutorial, has aprendido a usar Snapshot Debugger para recopilar una grabación de retroceso en el tiempo para máquinas virtuales de Azure. Más información sobre la depuración de instantáneas: