0Pricing
C++ Academy · Lección

Uso de gdb y lldb

Recorra los programas paso a paso

Uso de gdb y lldb es una lección gratuita de C++ Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de C++ Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C++ Academy incluye 4 lecciones en total.

Depuradores interactivos

gdb (GNU) y lldb (LLVM) permiten pausar un programa en ejecución, inspeccionar variables y recorrer el código línea por línea. Sus comandos son similares.

Compilar con información de depuración

Compile siempre con -g (e idealmente con -O0) para que el depurador pueda relacionar el código máquina con el código fuente.

g++ -g -O0 main.cpp -o app
# then
gdb ./app

Establecer puntos de interrupción

Un punto de interrupción pausa la ejecución en una ubicación elegida.

  • gdb: break main.cpp:10 o break myFunc
  • lldb: breakpoint set --file main.cpp --line 10 o b myFunc

Ejecutar el programa

Inicie la ejecución con run (o r). El programa se detiene en el primer punto de interrupción que encuentra y queda listo para inspeccionarlo.

Recorrer el código paso a paso

Comandos básicos para avanzar paso a paso (con los mismos nombres en gdb y lldb):

  • next / n: ejecuta una línea y pasa por encima de las llamadas
  • step / s: entra en una llamada
  • finish: ejecuta hasta que la función actual retorna
  • continue / c: reanuda la ejecución hasta el siguiente punto de interrupción

Inspeccionar variables

Imprima valores para comprender el estado del programa.

  • gdb: print x, print arr[2]
  • lldb: frame variable o p x

Objetivo de una sesión de ejemplo

Considere este programa; podría detenerse en el bucle e imprimir sum en cada iteración.

#include <iostream>

int main() {
    int sum = 0;
    for (int i = 1; i <= 3; ++i) {
        sum += i;
    }
    std::cout << sum << "\n";
    return 0;
}

La pila de llamadas

Cuando la ejecución está detenida, backtrace (gdb) o bt (lldb) muestra la cadena de llamadas a funciones. Use frame N para cambiar a una función llamadora e inspeccionar sus variables locales.

Puntos de observación

Un punto de observación detiene el programa cuando cambia una variable, lo que ayuda a encontrar dónde se producen modificaciones inesperadas.

  • gdb: watch counter
  • lldb: watchpoint set variable counter

Puntos de interrupción condicionales

Interrumpa la ejecución solo cuando se cumpla una condición para evitar avanzar manualmente paso a paso.

  • gdb: break loop.cpp:5 if i == 99
  • lldb: breakpoint set --line 5 --condition "i == 99"

Depurar fallos

Ejecute el programa que falla bajo el depurador; ante un fallo de segmentación, se detendrá en la línea que causó el error. Después, use bt para ver cómo llegó hasta allí. También puede analizar un volcado de memoria posteriormente.

Comprobación rápida

Recuerde los comandos para avanzar paso a paso.

Repaso

Ha aprendido a depurar de forma interactiva.

  • Compilar con -g -O0
  • Establecer puntos de interrupción, usar run y después next/step/finish
  • Inspeccionar con print/frame variable y backtrace
  • Los puntos de observación y los puntos de interrupción condicionales permiten abordar errores difíciles

Preguntas frecuentes

¿La lección «Uso de gdb y lldb» es gratis?

Sí — el texto completo de «Uso de gdb y lldb» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de C++ Academy, actualiza a CoddyKit PRO. El curso de C++ Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Uso de gdb y lldb»?

Recorra los programas paso a paso Practicas C++ Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar C++ Academy?

No se requiere experiencia previa. C++ Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Uso de gdb y lldb»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de C++ Academy?

Sí. Cada lección de C++ Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Uso de gdb y lldb
  2. AddressSanitizer
  3. UBSan y TSan
  4. Conceptos básicos de Valgrind
← Volver a C++ Academy