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 ./appEstablecer puntos de interrupción
Un punto de interrupción pausa la ejecución en una ubicación elegida.
- gdb:
break main.cpp:10obreak myFunc - lldb:
breakpoint set --file main.cpp --line 10ob 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 llamadasstep/s: entra en una llamadafinish: ejecuta hasta que la función actual retornacontinue/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 variableop 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
runy despuésnext/step/finish - Inspeccionar con
print/frame variableybacktrace - 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
- Uso de gdb y lldb
- AddressSanitizer
- UBSan y TSan
- Conceptos básicos de Valgrind