Cómo pisar o sobre una función en GDB

Cómo pisar o sobre una función en GDB
La depuración es una habilidad fundamental que cualquier programador autoidentificado debería tener. Nos permite ver, revisar y corregir errores en nuestro código. Una poderosa herramienta de depuración es el GNU Depugger, GDB para corto.

Esta guía buscará trabajar con GDB para entrar o sobre una función en nuestro código.

Uso básico de GDB

Para ilustrar esto, puede usar su código o usar la muestra proporcionada a continuación. En el siguiente ejemplo, la función Loop Me contiene un bucle que examinaremos con GDB.

#incluir
void loopMe ()

para (int i = 0; i<5;i++)
printf ("i es %d \ n", i);


int main ()
int a = 10;
a += 10;
printf ("valor de a es %d", a);
LoopMe ();
regresar 0;

Compile el código con -g como:

$ gcc -g bucle.bucle C -O

A continuación, inicie el programa con GDB como:

$ GDB Loop

Una vez en GDB, podemos ejecutar el programa usando el comando Run o R. Puede detener el programa mientras se ejecuta usando la tecla Ctrl + C.

Establezcamos un punto de interrupción en la función principal para detener la ejecución en ese punto. En el ejemplo anterior, nos detenemos en la línea 10.

$ (GDB) Break Main

Punto de interrupción 1 a 0x5555555555171: bucle de archivo.C, línea 10.

Para atravesar su programa Line by Line, puede usar el comando Next o N.

$ (GDB) Siguiente
$ (GDB) n

Una vez que llegue a la función en la que desea trabajar, en el ejemplo anterior, la función LoopMe (), puede pasar sobre ella usando el siguiente comando.

Esto se omitirá la función y volverá directamente a regresar 0 como:

También puede entrar en la función y trabajar en ella utilizando el comando Step o S. Por ejemplo, para ingresar la función LoopMe (), podemos hacer:

Paso de $ (GDB)

El comando entrará en la función como:

Ahora que estamos dentro de la función LoopMe (), podemos pasar por la línea por línea usando el siguiente comando:

Como puede ver, ejecutamos a través del bucle y vemos cómo se ejecuta el bucle.

Conclusión

En este tutorial rápido, discutimos el proceso de uso de GDB para pasar por alto o en una función al depurar.