Problemas al depurar con Visual Studio Code: soluciones y configuración

Los problemas al depurar con Visual Studio Code suelen estar relacionados con la configuración del proyecto, la ausencia del entorno de ejecución o la selección incorrecta del depurador. Para comenzar, debe abrir su proyecto en el IDE, abrir el archivo que desea depurar, colocar puntos de interrupción y hacer clic en la pestaña de «Depurar» en la barra de herramientas.

Después, haga clic en el botón «Iniciar Depuración» o use la tecla de acceso rápido F5. La vista Ejecutar y depurar permite iniciar y detener sesiones, recorrer el código, inspeccionar variables, consultar la pila de llamadas y configurar puntos de interrupción.

Requisitos previos para iniciar una sesión de depuración

La depuración es una característica principal de Visual Studio Code. En este tutorial, le mostraremos cómo ejecutar y depurar un programa en VS Code. Realizaremos un recorrido por la vista Ejecutar y depurar, exploraremos algunas características de depuración y finalizaremos estableciendo un punto de interrupción.

Para usar las características de depuración que se muestran en este vídeo para Node.js, primero debe instalar Node.js. Para seguir la parte de Python del vídeo, deberá instalar Python.

Una instalación de Visual Studio Code configurada para el desarrollo de aplicaciones de C#. También se necesita capacidad para desarrollar aplicaciones de consola de C# que implementan lógica de negocios mediante instrucciones de iteración, instrucciones de selección y métodos personalizados, además de conocimientos básicos de los depuradores de código y el proceso de depuración.

Las extensiones del depurador proporcionan la compatibilidad necesaria para cada lenguaje y entorno de ejecución. Si el depurador no aparece en la vista Ejecutar y depurar o no puede iniciar el programa, compruebe que la extensión correspondiente esté instalada y habilitada.

Qué permite hacer el depurador

El Debugger en Visual Studio Code es una característica que le permite a los desarrolladores ejecutar programas línea por línea, detener la ejecución en puntos específicos (llamados puntos de interrupción) y examinar el estado del programa en cualquier momento. Esto es esencial para identificar errores y comprender el flujo de ejecución de su código.

El flujo de trabajo de depuración básico implica la configuración de puntos de interrupción, recorrer el código paso a paso, inspeccionar valores y manejar excepciones.

  • Configure el depurador de Visual Studio Code para un programa de C#.
  • Cree puntos de interrupción y recorra el código para aislar problemas.
  • Inspeccionar el estado del programa en cualquier paso de ejecución.
  • Use la pila de llamadas para buscar el origen de una excepción.

Inicio de la depuración en Visual Studio Code

Para comenzar a depurar en Visual Studio Code, primero, debe abrir su proyecto en el IDE. Luego, siga estos simples pasos:

  1. Abre el archivo que desea depurar.
  2. Coloca puntos de interrupción en las líneas de código donde desees detener la ejecución.
  3. Haz clic en la pestaña de «Depurar» en la barra de herramientas.
  4. Haz clic en el botón «Iniciar Depuración» o usa la tecla de acceso rápido F5.

Para iniciar una sesión de depuración, seleccione Depurar>Iniciar depuración o use el método abreviado de teclado F5. La vista Ejecutar y depurar ofrece un punto central para controlar la ejecución y consultar la información disponible durante la sesión.

Vista Ejecutar y depurar de Visual Studio Code

Configuración de launch.json

Cuando una ejecución requiere parámetros, rutas, un archivo de inicio o un entorno específico, puede utilizar un archivo de configuración de launch.json. El recorrido de configuración incluye el uso de un archivo de configuración de launch.json, nuevas características en la ventana de VS Code, extensiones del depurador y el establecimiento de un punto de interrupción.

Una configuración incorrecta de inicio puede impedir que el depurador encuentre el archivo, utilice el intérprete adecuado o pase los argumentos esperados. En estos casos, revise el programa de inicio, el entorno seleccionado, las rutas de búsqueda y las opciones específicas del lenguaje.

Puntos de interrupción

Los puntos de interrupción son esenciales para la depuración efectiva. Estos puntos te permiten detener la ejecución del programa en lugares específicos para examinar el estado del código. Puedes agregar puntos de interrupción haciendo clic en el número de línea en el margen izquierdo del editor de código.

Los puntos de interrupción detienen la ejecución del código en un punto marcado para poder inspeccionar el estado del programa. Para establecer un punto de interrupción, seleccione en el margen izquierdo del editor de código o haga clic con el botón derecho en una línea de código y seleccione Punto de interrupción>Insertar punto de interrupción.

Aparece un punto rojo en cada línea que tiene un punto de interrupción establecido. Para quitar un punto de interrupción, seleccione el punto rojo o haga clic con el botón derecho en la línea de código y seleccione punto de interrupción>Eliminar punto de interrupción. También puede deshabilitar un punto de interrupción seleccionando el punto rojo y seleccionando Punto de interrupción>Deshabilitar punto de interrupción.

Condiciones y acciones de los puntos de interrupción

Puede personalizar las condiciones en las que se desencadena un punto de interrupción, como la interrupción solo cuando una variable se establece en un determinado valor o intervalo de valores.

Para establecer condiciones, haga clic con el botón derecho en el punto rojo del punto de interrupción y seleccione Condiciones. Se abre el cuadro de diálogo Configuración de punto de interrupción.

En el cuadro de diálogo, puede agregar varias condiciones y crear expresiones condicionales mediante código de Python. También tiene las opciones para definir Acciones para un punto de interrupción.

Puede crear un mensaje para iniciar sesión en la ventana Salida y, opcionalmente, especificar para continuar la ejecución automáticamente. Al registrar un mensaje se crea un punto de seguimiento que no agrega código de registro directamente a la aplicación.

En función de cómo configure las condiciones y acciones de un punto de interrupción, el icono rojo del margen izquierdo cambia para indicar la configuración. Es posible que vea la forma de punto, un temporizador del reloj o un diamante.

Recorrer el código paso a paso

Una vez hayas iniciado la depuración y tu programa se detenga en un punto de interrupción, puedes hacer muchas cosas útiles: continuar la ejecución, avanzar línea por línea, inspeccionar variables y controlar la sesión desde la barra de herramientas.

Continuar la ejecución: puedes continuar la ejecución del programa línea por línea haciendo clic en el botón «Continuar» en la barra de herramientas o usando la tecla de acceso rápido F5. Paso a paso: puedes avanzar línea por línea en tu código utilizando las opciones «Paso a Paso» en la barra de herramientas o las teclas de acceso rápido como F10 y F11.

Cuando Visual Studio detiene la ejecución de código en un punto de interrupción, hay varios comandos que puede usar para recorrer el código o ejecutar bloques de código antes de interrumpir de nuevo. Los comandos están disponibles en algunos lugares de Visual Studio, incluida la barra de herramientas del Depurador, el menú Depurar, el menú contextual con el botón derecho en el editor de código, y a través de atajos de teclado.

ComandoMétodo abreviadoDescripción
DetenerMayús + F5Detenga la sesión de depuración.
ReiniciarCtrl + Mayús + F5Reinicie la sesión de depuración actual.
ContinuarF5Ejecute el código hasta llegar al siguiente punto de interrupción.
Step IntoF11Ejecuta la instrucción siguiente y se detiene. Si la siguiente instrucción es una llamada a una función, el depurador se detiene en la primera línea de la función llamada.
Step OverF10Ejecute la siguiente instrucción, incluida la realización de una llamada a una función (ejecutando todo su código) y aplicando cualquier valor devuelto. Este comando permite omitir fácilmente las funciones que no es necesario depurar.
Step OutMayús+F11Ejecute el código hasta el final de la función actual y, a continuación, paso a la instrucción de llamada. Este comando es útil cuando no es necesario depurar el resto de la función actual.
Ejecutar hasta el cursorCtrl+F10Ejecuta el código hasta la ubicación del operador exponencial en el editor. Este comando permite omitir fácilmente un segmento de código que no es necesario depurar.
Establecer instrucción siguienteCtrl+Mayús+F10Cambia el punto de ejecución actual del código a la ubicación del operador exponencial. Este comando le permite omitir por completo la ejecución de un segmento de código, por ejemplo, cuando sabe que el código es erróneo o que produce un efecto secundario no deseado.
Mostrar la instrucción siguienteAlt+Núm+\Regrese a la siguiente instrucción para ejecutarla en el código. Este comando le ayuda a localizar el lugar en el código donde se detiene el depurador.

Inspección de variables y expresiones

La ventana de variables le permite ver los valores de las variables en ese momento particular de la ejecución. Esto es crucial para comprender cómo se están modificando las variables a lo largo del programa.

Al detener la ejecución de código en el depurador, puede inspeccionar y modificar los valores de las variables. También puede usar la ventana Inspección para supervisar variables individuales y expresiones personalizadas.

Para ver un valor utilizando la función DataTips durante la depuración, pase el ratón sobre cualquier variable en el editor. Puede seleccionar el valor de la variable para cambiarlo.

Para usar la ventana Automático, seleccione Depurar>Ventanas>Automático. Esta ventana contiene variables y expresiones que están cerca de la instrucción actual. Puede hacer doble clic en la columna de valor o seleccionar y escribir F2 para editar el valor.

Para usar la ventana Locales, seleccione Depurar>Ventanas>Locales. Esta ventana muestra todas las variables que están en el ámbito actual. Puede hacer doble clic en la columna de valor o seleccionar y escribir F2 para editar el valor.

Para usar las ventanas Inspección, seleccione Depurar>Ventanas>Inspección>Inspección 1-4. Esta opción permite escribir expresiones arbitrarias de Python y ver los resultados. Las expresiones se vuelven a evaluar para cada paso.

Inspección de cadenas

Para inspeccionar un valor de cadena, seleccione Ver (lupa) en el lado derecho de la entrada Valor. Los tipos str, unicode, bytesy bytearray están disponibles para su inspección.

En el menú desplegable Ver se muestran cuatro opciones de visualización: Texto, HTML, XML o JSON. Después de seleccionar una visualización, un cuadro de diálogo emergente muestra el valor de cadena sin comilla según el tipo seleccionado.

Puede ver la cadena con ajuste y desplazamiento, resaltado de sintaxis y vistas de árbol. Estas visualizaciones pueden ayudar a depurar problemas con cadenas largas y complejas.

Barra de herramientas y control de la sesión

La barra de herramientas de depuración ofrece una variedad de opciones para controlar la ejecución, como detenerla, reiniciarla o saltar a un punto de interrupción específico.

El comando Detener finaliza la sesión de depuración, mientras que Reiniciar vuelve a iniciar la sesión de depuración actual. Continuar ejecuta el código hasta llegar al siguiente punto de interrupción.

Excepciones y pila de llamadas

Si se produce un error en el programa durante la depuración, pero no tiene un controlador de excepciones para él, el depurador se interrumpe en el punto de la excepción. Cuando se produce un error, puede inspeccionar el estado actual del programa, incluida la pila de llamadas.

Sin embargo, si intenta recorrer el código, el proceso de depuración continúa para lanzar la excepción hasta que se controla o hasta que el programa se cierra.

Para ver una vista expandida de excepciones, seleccione Depurar>Ventanas>Configuración de excepciones. En la ventana Configuración de excepciones, la casilla situada junto a una excepción controla si el depurador siempre se interrumpe cuando se produce esa excepción.

Para interrumpir con más frecuencia una excepción determinada, active la casilla situada junto a la excepción en la ventana Configuración de excepciones. De forma predeterminada, la mayoría de las excepciones se interrumpen cuando no se encuentra un controlador de excepciones en el código fuente.

Para cambiar este comportamiento, haga clic con el botón derecho en cualquier excepción y modifique la opción Continuar cuando no se controle en el código de usuario. Para interrumpir la excepción con menos frecuencia, desmarque esta opción.

Para configurar una excepción que no aparezca en la ventana Configuración de excepciones, seleccione Agregar (símbolo más). Escriba un nombre para la excepción que se va a inspeccionar. El nombre debe coincidir con el nombre completo de la excepción.

La pila de llamadas muestra la pila de llamadas actual, lo que puede ser útil para rastrear cómo se llegó a un punto de ejecución en particular. Use la pila de llamadas para buscar el origen de una excepción.

Pila de llamadas durante depuración

Herramientas avanzadas de depuración

El Debugger en Visual Studio Code también ofrece algunas herramientas avanzadas para llevar tu depuración al siguiente nivel.

  • Mapa de calle: te permite ver el flujo de tu programa de manera gráfica, lo que facilita la identificación de caminos de ejecución complejos.
  • Rastreo de pila: muestra la pila de llamadas actual, lo que puede ser útil para rastrear cómo se llegó a un punto de ejecución en particular.
  • Consola integrada: puedes imprimir mensajes o valores en la consola integrada mientras depuras tu código para obtener una mejor comprensión de lo que está sucediendo.

Configuración de proyectos y archivos de inicio

Si desea controlar el entorno y los argumentos de Python, cree primero un proyecto para el código. Puede crear un proyecto con la plantilla Desde código de Python existente.

Sin embargo, no necesita un archivo de proyecto o solución en Visual Studio para depurar el código de Python. Para depurar código en un archivo de Python independiente, abra el archivo en Visual Studio y seleccione Depurar>Iniciar depuración.

Visual Studio inicia el script con el entorno predeterminado global y sin argumentos. A continuación, tiene compatibilidad completa con la depuración para el código.

Para un proyecto, estas acciones inician el archivo de inicio con el entorno activo del proyecto y cualquier argumento de línea de comandos o rutas de búsqueda especificadas para Propiedades del proyecto.

Establecimiento del archivo de inicio

El archivo de inicio de un proyecto se muestra en negrita en Explorador de soluciones. Puede elegir qué archivo se va a usar como archivo de inicio.

Para especificar un archivo de proyecto como archivo de inicio, haga clic con el botón derecho en el archivo y seleccione Establecer como elemento de inicio. En Visual Studio 2017, versión 15.6 y posteriores, verá una alerta si no tiene establecido un archivo de inicio especificado.

Las versiones anteriores de Visual Studio pueden abrir una ventana de Salida con el intérprete de Python en ejecución o la ventana de Salida se abre y cierra brevemente.

Selección del entorno activo

Si usa un archivo de proyecto, el depurador siempre comienza con el entorno de Python activo para el proyecto. Puede cambiar el entorno activo actual.

Si va a depurar un archivo de código de Python independiente, Visual Studio inicia el script con el entorno predeterminado global y sin argumentos.

Rutas de búsqueda y propiedades de depuración

De forma predeterminada, el depurador inicia el programa con el iniciador de Python estándar, sin argumentos de línea de comandos y ninguna otra ruta de acceso o condiciones especiales.

Puede configurar las opciones de inicio de un proyecto de Python estableciendo las propiedades de depuración. Para acceder a las propiedades de depuración de un proyecto, haga clic con el botón derecho en el proyecto de Python en el Explorador de Soluciones, seleccione Propiedades y luego seleccione la pestaña Depurar.

Especifique las rutas de búsqueda de archivos y carpetas que Visual Studio usa para el proyecto. Estos valores coinciden con los elementos que se muestran en el nodo Rutas de búsqueda del proyecto en el Explorador de soluciones.

Aunque puede especificar rutas de acceso de búsqueda en este cuadro de diálogo, puede ser más fácil usar el Explorador de soluciones, donde puede examinar carpetas y convertir automáticamente rutas de acceso al formato correspondiente.

Modos de inicio del depurador para Python

Use esta propiedad para definir el comportamiento de inicio del depurador.

ValorDescripción
Iniciador estándar de PythonUse el código de depuración escrito en Python portátil compatible con CPython, IronPython y variantes como Stackless Python. Esta opción proporciona la mejor experiencia para depurar código de Python puro.
Iniciador webEjecute su navegador predeterminado al iniciar el sistema y habilite la depuración de plantillas.
Iniciador web de DjangoImplemente un comportamiento idéntico a la propiedad del iniciador web de, pero para un entorno de Django. Use esta opción solo con fines de compatibilidad con versiones anteriores.
Iniciador de IronPython (.NET)Usa el depurador de .NET, que solo funciona con IronPython, pero permite hacer pasos entre cualquier proyecto de lenguaje .NET, incluidos C# y Visual Basic.

Cuando te conectas a un proceso de python.exe en ejecución, se usa el iniciador especificado en esta propiedad. Este iniciador también proporciona depuración en modo mixto para CPython, lo que permite cambiar sin problemas entre los códigos C/C++ y Python.

Este iniciador se usa si se asocia a un proceso de .NET en ejecución que hospeda IronPython.

Particularidades de la depuración de Python

En Python, todo el archivo es código ejecutable, por lo que Python ejecuta el archivo cuando se carga para procesar cualquier definición de función o clase de nivel superior.

Si se ha establecido un punto de interrupción, puede observar que el depurador se interrumpe parcialmente a través de una declaración de clase. Este comportamiento es correcto, aunque a veces es sorprendente.

Visual Studio proporciona una experiencia de depuración completa para Python. En este artículo, explorará cómo adjuntar el depurador a procesos en ejecución y evaluar expresiones en las ventanas Inspección e Inmediato.

En el depurador, puede inspeccionar variables locales, usar puntos de interrupción, introducir/salir/omitir instrucciones, Definir instrucción siguiente, etc.

Solución rápida de problemas habituales

El depurador no inicia

Compruebe que el archivo que desea ejecutar esté abierto y que exista una configuración de inicio compatible con el lenguaje del proyecto. Para Node.js, primero debe instalar Node.js; para Python, deberá instalar Python.

Si el proyecto requiere una extensión del depurador, revise que esté instalada y habilitada. También compruebe que el archivo de inicio, el entorno activo y las rutas de búsqueda sean los correctos.

El punto de interrupción no se activa

Compruebe que el punto rojo aparezca en el margen izquierdo del editor de código y que el programa ejecute realmente esa línea. Puede deshabilitar un punto de interrupción seleccionando el punto rojo y seleccionando Punto de interrupción>Deshabilitar punto de interrupción.

Si la interrupción depende de un valor concreto, revise las condiciones configuradas en el cuadro de diálogo Configuración de punto de interrupción.

Los valores observados no son los esperados

Detenga la ejecución en un punto de interrupción y revise las ventanas Automático, Locales e Inspección. Las expresiones de la ventana Inspección se vuelven a evaluar para cada paso.

También puede modificar los valores de las variables desde la ventana Automático o la ventana Locales haciendo doble clic en la columna de valor o seleccionando y escribiendo F2.

La ejecución sigue una ruta inesperada

Utilice Step Into para entrar en la función llamada, Step Over para ejecutar la llamada sin recorrer su código y Step Out para ejecutar el código hasta el final de la función actual.

El comando Ejecutar hasta el cursor permite omitir fácilmente un segmento de código que no es necesario depurar. Establecer instrucción siguiente le permite omitir por completo la ejecución de un segmento de código, por ejemplo, cuando sabe que el código es erróneo o que produce un efecto secundario no deseado.

El programa se detiene por una excepción

Inspeccione el estado actual del programa, incluida la pila de llamadas. En la ventana Configuración de excepciones puede controlar si el depurador siempre se interrumpe cuando se produce una excepción determinada.

Depuración remota y escenarios específicos

Para obtener información sobre depuración en escenarios específicos, consulte los siguientes artículos: Depuración remota de Linux, Mixed-mode Python/C++ debugging (Depuración en modo mixto Python/C++) y Symbols for mixed-mode debugging (Símbolos de depuración en modo mixto).

Actualización de la configuración

Las características y funciones del Debugger en Visual Studio Code pueden cambiar con las actualizaciones del software, por lo que se recomienda consultar la documentación oficial de VS Code para obtener información actualizada y detallada sobre su uso.

DEBUG 🪲 en Python 🐍 con VSCode 👨🏻_💻 Ejecutá tu CÓDIGO LÍNEA a LÍNEA 🐾

tags: #problemas #al #depurar #con #visual #studio

Publicaciones populares: