Integrando VSCode, Mingw-w64 y CMake (Parte IV)

Artículos de la serie:

Depuración en VSCode mediante GDB


En este post analizaremos brevemente el depurador estándar ofrecido por el compilador GCC (el conocido GNU Debugger, abreviado simplemente como GDB) en combinación con el editor VSCode. Asumiremos que hemos realizado ya la instalación del compilador Mingw-w64, así como del editor VSCode y sus extensiones para C++, tal y como explicamos en el primer post de esta serie.

Partamos de un proyecto en C++ previamente compilado en modo debug (por ejemplo, el proporcionado en el tercer post de esta serie). Con el fin de iniciar el proceso de depuración, acudiremos al icono con forma de bug disponible en la barra de actividad lateral del editor VSCode (el área de debugging es también accesible a través de la combinación Ctrl+Shift+D).

A continuación, deberemos proporcionar una configuración de depuración para nuestro proyecto. Para ello, pincharemos sobre el botón 'Run and Debug'.

De entre las opciones que se nos proporcionan, seleccionaremos 'C++ (GDB/LLDB)' y, seguidamente, 'Configuración predeterminada':



El editor VSCode generará entonces de forma automática un archivo launch.json ubicado en la subcarpeta .vscode de nuestro folder. En principio, las únicas modificaciones a realizar en dicho archivo corresponden a las claves siguientes:
  • "program", donde deberemos indicar la localización del ejecutable compilado de nuestro proyecto.
  • "miDebuggerPath", donde deberemos proporcionar la dirección del depurador gdb.exe. Asumiendo que la hayamos introducido ya en el PATH del sistema (tal y como recomendábamos en el primer post de esta serie), el valor para la clave "miDebuggerPath" se reduciría simplemente a gdb.exe.
Así, una vez modificado, el fichero launch.json tomaría una forma similar a la siguiente:

{    // Use IntelliSense to learn about possible attributes.    // Hover to view descriptions of existing attributes.    // For more information, visit:    // https://go.microsoft.com/fwlink/?linkid=830387     "version""0.2.0",     "configurations": [        {           "name""(gdb) Launch",           "type""cppdbg",           "request""launch",           "program""${workspaceFolder}/build/debug/prueba.exe",           "args": [],           "stopAtEntry"false,           "cwd""${workspaceFolder}",           "environment": [],           "externalConsole"false,           "MIMode""gdb",           "miDebuggerPath""gdb.exe",           "setupCommands": [              {                 "description""Enable pretty-printing for gdb",                 "text""-enable-pretty-printing",                 "ignoreFailures"true              }           ]        }     ]  }

VSCode permite la incorporación de puntos de interrupción (breakpoints) en las líneas de código que consideremos convenientes sin más que pinchar con el ratón en el margen izquierdo del editor de texto:


Para iniciar el proceso de depuración, bastará con pinchar sobre el icono 'Start Debugging' mostrado en la figura inferior:

El área de debugging ofrece un listado de los breakpoints habilitados. Asimismo, podremos hacer un seguimiento de las variables activas y de la pila de llamadas durante el proceso de depuración. Una barra de iconos superior nos ofrece, por su parte, las operaciones básicas del debugger:

  • Continue/Pause.
  • Step over: Solicitamos la ejecución de una instrucción completa. Si ésta consiste en la llamada a un método o función, se ejecuta en un solo paso.
  • Step into: Si se va a invocar un método o función que se desea depurar, ingresamos en la misma y continuamos la depuración paso a paso.
  • Step out: Damos por finalizada la dhttps://dgvergel.blogspot.com/2020/06/integrando-vscode-mingw-w64-y-cmake-v.htmlepuración paso a paso de un método o función, por lo que solicitamos que se ejecute su código restante en un solo paso hasta retornar de ella.
  • Restart.
  • Stop.

Puedes acceder al siguiente artículo de la serie a través de este enlace.

No hay comentarios:

Publicar un comentario