要想搞开发不学点调试还是不行的。拖了好久,今天要行动了~
1.为了可以在gdb中调试,在gcc编译阶段要加上-g的参数,如想编译mian.c生成test的执行文件,可以输入下面命令
gcc -g mian.c -o test;
如果没有-g,你将看不见程序的函数名、变量名,所代替的全是 运行时的内存地址。当你用 -g把调试信息加入之后,
并成功编译目标代码以后,就可以用gdb进行调试了。
2.在gdb中调试test的方法是:gdb test;
进入gdb调试之后,首先要设置断点,如果直接运行run会执行到程序的末尾;还可以进入gdb后通过file 命令来引入调试的程序,如test在目录/root 下,则file /root/test 也可达到同样效果。
a.设置断点的方式为
break <function>如在main函数设置断点,设置完成之后会有提示:
也可以指定源程序的某行设置断点,如break 10:会在程序的第十行设置断点
info breakpoint可以查看当前所有断点以及断点的情况,可以用disable与enable来分别设置取消和恢复某个断点,注意disable与enable的参数应该为info breakpiont命令中个断点对应的那个数字标号。delete 某个标号则直接删除了这个断点
break filename:linenum可以设置某个文件的某行为断点,list function可以查看特定函数的源码信息。
b.下面输入run命令就可以运行这个程序到main函数了,如果在run之前没有设置断