GDB 笔记

基本知识:

1:如果用GDB调试的话编译的时候加上-g 选项 不然调试的时候list不出 源代码。

2:break 设置断点

3:程序run之前的设置

    1: 设置好参数 ste args
    2: 路径,环境变量    path<dir>

    3: 工作目录, 输入输出  cd x进入, pwd  查看,

4: clear 清除断点/

5:enable·[break][point] 启动断点

6:利用command命令来设置断点的运行条件。

       例:break foo if x>0 //一旦在foo函数中 下x>0

             commands
            printf “ x is %d\n ” ,x     /打印x值

             continue
             end

7:condition<bnum><expression>  // 修改断点号为 bnum 的停止条件为 expression


condition<bnum>//清除断点号为 bnum 的停止条件。


ignore<bnum><count>///表示忽略断点号为 bnum 的停止条件 count 次。

 8:next<count> 
单步跟踪,如果有函数调用,他不会进入函数。

     step<count>
单步跟踪,如果有函数调用,他会进入该函数

set step-mode on
打开 step-mode 模式,于是,在进行单步跟踪时,程序不会因为没有 debug
信息而不停住。这个参数很有利于查看机器码。
set step-mode off
运行程序,直到当前函数完成返回。并打印函数返回时的堆栈地址和返回值
及参数值信息。

finish
运行程序,直到当前函数完成返回。并打印函数返回时的堆栈地址和返回值
及参数值信心。
until 或 u
当你厌倦了在一个循环体内单步跟踪时,这个命令可以运行程序知道退出循
环体。

9: bt  打印栈信息

10: 搜素源代码

f orward -search<regexp>
search<regexp>
向前面搜索。
reverse-search<regexp>
全部搜索。

11: info line 可以查看内存信息

12:查看数组 利用 // 地址 @ 查看长度

13:x 按十六进制格式显示变量。
     d 按十进制格式显示变量。

     u 按十六进制格式显示无符号整型。
     o 按八进制格式显示变量。
      t 按二进制格式显示变量。
      a 按十六进制格式显示变量。
     c 按字符格式显示变量。
     f 按浮点数格式显示变量。

14:jump<linespece》 执行下一语句的点 

       jump<laddress>     .......................地址

15:
这里的 <address> 是代码行的内存

调试技巧:

 1: 在调试时按照自己的思路对变量值进行修改

       如:
        (gdb) print x=4



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值