linux 学习笔记(2)

cd ~:进入这用户的home目录下。
mkdir  /home/TestTan:创建 /home/TestTan目录,
rmdir dirctory:删除相应的目录,
mv test4_4.c test4_4:将test4_4.c重命名为test4_4,
spsn@localhost TestTan]$ cp sum.c ~/Test/Tan_C:将sum.c复制到用户目录的/Test/Tan_C下,
用gdb调试程序:
 gcc -o leap -g year.c:gdb 可以打印出所调试程序的源代码,当然,在程序编译时一定要加上-g参数,把源程序信息编译到执行文件中,不然就看不到源程序了(看不见程序的函数名和变量名),代替它们的全是运行时的内存地址。
./leap:运行生成的编译文件


gdb leap:启动gdb调试leap程序,
l(L的小写):显示但行号的源码,
l num:显示该num行号前后5行的源码,
设置断点:
break <function>:在进入指定函数时停住,
break <linenum>:在进入指定行号时停住,
设置观察点:
watch <expr>:为该表达式设置观察点,当该值变化时,马上停住,
(观察点的作用?)

查看变量的值:
gdb中可查看3种变量的值:
全局变量(所有文件可见),
静态全局变量(当前文件可见),
局部变量,
如果全局变量名和局部变量名冲突,并当前停止点在局部函数中,那么print的将是局部变量的值;要看全局变量的值,可用'::'操作符.
p(print variable):查看该变量的值。

修改变量值:
在调试程序运行时,修改变量值很方便,例如:
(gdb)print year=4058 :将变量year的值改为4058.

c(continue):恢复程序运行直到结束或下一个断点处,
s(step):单步调试,执行下一步,如果有函数调用就会进入该函数,
            
n(next):单步调试,但是如果有函数调用,不会进入该函数,
退出gdb:
q(quit).

posted @ 2008-07-14 22:30  Salesforce  阅读(192)  评论(0编辑  收藏  举报