linux gbd 调试代码

    linux下调试代码虽然没有windows下调试代码那么方便,但有gdb这个调试工具,也会让我们在linux下开发变得简单,方便。

    gdb 简单功能的运用:

1、查看执行文件的源码。

   对于linux下的执行文件查看源码,首先,在编译的时候要加入源码的链接,即在用gcc编译的时候加入源码的链接参数 gcc -g  。其次,要保证执行文件的源码存在。 用gdb查看源码的时候,用命令 list 查看。先进入(1)gdb 执行文件名。(2) list 行号,或者  函数名。 list 命令一次展示10行源码,按回车键重复执行list命令(回车键是重复上一个命令的执行),它会继续下一个10行代码的显示。list 函数名,是查看某一个函数的源码。

2、gdb 执行应用程序,单步调试

    进入gdb后,输入 start, 程序断点在执行文件的入口函数main()处。如果要一行一行的执行代码,则输入next(简写n)回车,进入下一行。如果有函数调用,想进入到某个函数内部进行单行执行,则输入setp 命令进入函数内部。此时,会打印进入函数的前两行,如果要查看传给函数的参数是多少,可以通过backtrace命令(简写 bt)查看函数栈帧情况。具体的内容为进入的函数被谁调用,它的栈帧号为1,调用该函数的栈帧号为0。进入函数后,可用info locals命令查看函数内部局部变量的值。如果要看调用该函数的局部变量的值 只要先进入到调用函数,通过 frame 1(调用函数的栈帧号) 进入到调用函数,然后 info locals(简写 i  locals)命令查看它的局部变量值。打印某一个局部变量的值,可通过 p 变量名 即可。 结束本函数的调试,输入 finish 即退出执行。

3、给某一行设置断点

   gbd 进入执行文件源码后,用list 显示想要断点的代码行号,然后 break 行号(简写 b 行号),即在对应的行号设置了断点。start 命令执行到main函数等待下一个命令,如果不想一行一行的执行代码,而是想运行到断点处,则输入c (continue 命令到断点处停下来)。 断点也可以给设置在某个函数处,b 函数名即可。断点可以设置多个,可以通过info breakpoints  命令查看已经设置好的断点,每一个断点都有一个号,如果想去掉某个断点,则delete  breakpoints 断点号 就可以了。如果不想删除断点,但有不想在该断点处停住,可以禁用该断点, 用命令 disable breakpoints 断点号 即可。 如果一次运行没有调试号,想重新来,则输入 run 从头开始执行代码。

  断点某个文件的某行 或者某个函数 则命令为 break 文件名 行号/函数名  如果不清楚函数的具体名字而只知道开头,则可以输入函数的开头 然后tab键进行提示,gdb会列出所有以输入开头的函数。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值