GDB的基本使用

当然关于技术方面所有博客的解释的内容,技术,技巧等都不是第一手信息, 第一手信息来源必然是文档和源码, 直接读文档更详尽
GDB文档
用户手册


现在总结基本原理和操作
GDB调试组成架构主要通过ptrace系统调用实现, 使用cli接口或者mi接口的图形化界面调试程序

GDB三种调试方式

  • 运行并调试
gdb                 # 打开gdb
file objname        # 指定文件名
r                   # run 运行
  • attach并调试一个已经运行的进程
gdb
attach PID          # 需要调试的正在运行程序的PID
  • 远程调试
    gdb运行在调试机上, gdbserver在目标主机上, 通过gdb远程串行协议(Remote Serial Protocol)进行通信, RSP数据基本格式: $…#xx

基本操作

-tui 选项会将代码显示在一个交互式窗口
layout split 同时显示源代码窗口和汇编指令窗口
layout reg 显示寄存器窗口

  • break - b 下断点

  • info 查看信息

  • disable - dis 禁用断点

  • enable 启用断点

  • clear 清除断点

  • delete - d 删除断点

  • watch 设置观察点, 当表达式值改变就会停止

  • step - s 单步步进

  • next - n 单步步过(不会进子程序)

  • return 取消函数调用执行

  • finish - fin 执行到栈帧返回

  • until - u 执行到大于当前栈帧的指定位置的源码行, 跳过循环

  • continue - c 继续执行到下一个断点

  • print - p 打印值

  • x 查看内存

  • disassemble - disas 反汇编

  • display 停止时打印

  • help - h 获取帮助信息

  • attach 拿到GDB以外的进程或文件

  • run - r 运行

  • backtrace - bt 打印栈的回溯

  • set follow-fork mode 调整调试父子进程的关系

  • thread apply all bt 打印所有线程堆栈信息

  • generate-core-file 调试的进程进行核心转储

  • directory - dir 设置源文件的路径

增强工具

GDB的增强工具有PEDA, gef, pwndbg
三合一配置教程

具体用法同样可见文档
gef
pwndbg
PEDA

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值