GDB使用

​1.首先写一个.c文件:vi h.c

​2.进行编译:gcc -g h.c -o h(使用gcc对其进行编译,-g表示编译时加入调试信息,-o是指定名称)

​3.使用:gdb h 对其进行调试

​5.gdb里面输入:q或者quit即可退出gdb

​6.gdb -q h屏蔽上面信息

a1f638a7ceb94b28a1b469c210f2a073.png

 

​7.查看代码命令:list简称l

​8.使用l 3,5表示查看第3到5行的代码

​9.使用l 函数名表示查看某个函数的代码

​10.l +表示往下翻动,l -表示往上翻动代码

​11.使用disassemble简写disass查看汇编代码

​使用TUI模式查看

​1.gdb h -tui查看代码(其中h为gcc -g h.c -o h中的可执行程序)

​注:没有直接跳到(gdb)而是出现paging--就得在paging后面加个m

​2按上下键可以进行滚动,方便查看代码

​3.Ctrl +x+2显示两个窗口

​4.Ctrl +x+o激活另一个窗口,再按上下键就可以滚动窗口了

​5.在调试时也可以使用layout命令打开TUI模式

​layout src表示显示源代码窗口

​layout asm表示显示汇编代码窗口

​layout split同时显示这两个窗口

​layout regs显示寄存器窗口

​使用Ctrl+x+a可以进入(退出)这个模式

​6.使用breakpoint简写为b可以设置一个断点

​b 数字表示在第几行设置了断点

​b 函数名表示在某个函数设置断点

​断点实际上是针对汇编来说的

​7.使用run简写r运行程序

​8.使用next简写为n可以单步执行

​9.使用print简写为p打印变量的值

​p 变量名表示打印变量的值

​p/t 变量名表示打印变量二进制打印

​p &变量名表示打印变量的地址

​p *地址表示打印地址的值

​10.使用x表示查看内存的值

​x/2uw 地址表示查看个两单位内存(按照u(无符号十进制)表示,每个单元4个字节(w))

​x/1tb 地址表示显示1个单元内存(按照t(二进制)显示每个单位1字节(b))

​11.使用step简写为s可以写入函数

​12.使用ni可以在汇编代码单步执行

​sub表示两数相减,test测试一方寄存器是否为空,但不改变操作数的值,jle表示小于等于则跳转,add表示两数相加,

​13.使用watch 变量可以跟踪查看变量值

​接着使用continue简写为c,当观察的值变化时会停下来

​14.查看寄存器也可以用info registers命令,layout regs也可以查看

​15.使用until直接执行完循环

​16.使用finish简写为fin直接执行完函数

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值