Tecnicas basicas de depuracion (debugging) - redireccion de entradas para ingreso automatico de datos. usar: a < entrada.txt - mensajes de metas alcanzados. usar: printf("estoy aqui/n"); - impresion de contenido de variables. usar: pitnf("x=%d y=%d a[%d]=%d/n",x,y,i,a[i]); - seguimiento del codigo usando puntos de detencion. usar: scanf("%c",c); - redireccion de salidas para estudio posterior. usar: a > salida.dat Existen depuradores de codigo, en unix el mas estandar es gdb. para usarlo Compilar programas en C con opcion -g ej: % gcc -g orden.c -o orden Para realizar el "debugging" o depuracion del programa usando el gdb se invoca con: gdb ej: gdb orden Para correr el programa se usa: (gdb) run Para pasaerle argumentos, estos se escriben a continucacion del run, ej: si nuestro programa se corre con : > a hola mundo se debe correr con: gbd a run hola mundo Antes de ejecutarlo es conveniente asignar puntos de quiebre. Para poner puntos de detenion o breakpoints en funciones: (gdb) b ej: b main Para borrar breakpoints (puntos de detencion): (gdb) del Mostrar nros. de breakpoints (gdb) info break Ejecutar una instruccion. Si hay una llamada a una funcion, detenerse en la primera instruccion de esa funcion. (gdb) s Ejecuta una instruccion sin detenerse en las funciones. (gdb) n Ejecutar las intruciones hasta el siguiente breakpoint. (gdb) c - Imprimir valores de expresiones (gdb) p ( p de print ) ej: p a[i] p x p x/y - Imprimir las variables locales de la funcion examinada: (gdb) info locals - para continuar la ejecucion de un probrama detenido: (gdb) c (c de continue) - Para cortar la ejecucion del programa. (gdb) kill Para obtener la ayuda del gdb: help para salir del gdb : (gdb) quit