2010-04-07 22 views
19

Estoy usando Linux, GCC y C.Cómo depurar un programa C

Tengo un archivo make.

Quiero depurar mi módulo. No quiero depurar un solo archivo, quiero depurar todo el módulo.

¿Cómo puedo hacerlo?

Respuesta

25

Compile su código con el distintivo -g y luego use el depurador gdb. Documentación para GDB es here, pero en esencia:

gcc -g -o prog myfile.c another.c 

y luego:

gdb prog 

Si desea una interfaz gráfica de usuario fácil de usar para GDB, echar un vistazo a DDD o Insight.

+2

También hay una interfaz gráfica para GDB llamado ddd que puede ser útil si va a tener un tiempo duro con acostumbrarse a GDB. – wasatz

+0

+1 solo para agregar - http://stackoverflow.com/questions/2588853/the-community-driven-gdb-primer –

+0

Tengo un gran número de archivos .c. según usted tengo que incluirlos a todos. hay alguna manera más corta. – ambika

6

Supongo que está compilando desde la línea de comandos.

Es posible que desee considerar un IDE (Entorno de desarrollo integrado), como KDevelop o Eclipse, etc. (sugerencia - Eclipse ... ECLPISE ... E C L I PS E).

utilizar un IDE para editar el código, refactorizar su código, examinar su código - árbol de la clase, haga clic en una variable, clase o función para saltar a la declaración, etc, etc

y - por supuesto - depurar:

  • ejecutar el código en el IDE
  • establecer puntos de interrupción para parar en determinadas líneas
  • o simplemente paso a través de una línea a la vez
  • examinar la pila de llamadas para ver ¿Cómo vas allí
  • examinar los valores actuales de las variables, para entender su problema
  • cambio de los valores de esas variables y correr a ver qué pasa
  • y más, más, más

ps como wasatz mencionado- DDD es grande - para visualizar el contenido de matrices/matrices, y - imo - especialmente si usted ha ligado listas

1

Puede utilizar la interfaz gráfica de usuario sencilla y útil basada en gdb "Nemiver". Puede depurar su módulo completo que comprende muchos archivos fuente.

enter image description here

Cuestiones relacionadas