linux GDB 调试命令 学习

来源:互联网 发布:常用电路设计软件 编辑:程序博客网 时间:2024/05/16 04:39

以前的时候,有过在Window下调试过java的经历,不过只是些javac java而已。

现在打算学习linux网络编程方面的东西,关于调试,有了些与以往不同的感觉。


1.在使用GDB调试时,编译命令需要加入-g选项,产生test

gcc -o test source.c -g//产生test


2.调试加载程序test

gdb test

进入gdb后,也可以使用file test 加载程序


3,设置输入参数  set args

main函数入口的args 和argv的参数

ps: args 和argv参数有些熟视无睹的意味了,今天有些明白: args 是参数个数,猜想默认就是1

如果需要输入参数1个,则args为2,且argv[1]是所存数据,而不是argv【0】;

set args X


4.列出源代码至屏幕上 list

list 几乎是每十行列出一次代码,然后按enter继续

列举10至15代码,需要命令 list 10,15

本人试了一下 list 10不仅仅是列举出第十行代码,而是其前后的代码都被list出来。


5断点


break x x代表某一行或某一个函数名

有条件地使用断点

break xx if(iii)

满足条件才会执行断点

查看当前设置的所以断点

info break

删除指定断点 delete break X,x代表某一个断点的序号

禁用断点

disable break x

允许断点

enable break x

清除断点

clear line line是指定的行数

6 Debug开始 run

run x,x可以为命令行参数,也可以不使用

ps: 关于以下提到的变量查看,c,n等需要run执行后才可以使用。


7变量查看

print 和display

print 是打印当前的变量值(只此一次),display 是在调试过程中一旦display某个变量,如果在当前调试行,变量在其作用域内,则变量的值会被显示出来。

print xx display xx,xx为变量的名字

8.调试移进命令

c(continue) n(next) s(step) finish

c是沿着断点继续执行,n是单步执行,s是如果该行有函数,进入函数体内,finish 从函数体内出来。

9.help xx,xx为命令。此命令用于查看使用命令的说明

10  退出gdb q


原创粉丝点击