[工具]GDB的命令和使用

19 篇文章 2 订阅
5 篇文章 0 订阅

目录

简介

一、GDB命令

1.1 断点
1.2 执行
1.3 信息查看
1.4 其他

二、GDB启动

2.1 用gcc编译程序
2.2 使用GDB调试

简介

GDB是一个跨操作系统的调试器,是Linux系统分析漏洞、调试溢出程序常用的调试工具。

一、GDB命令

1.1 断点

GDB命令参数作用示例
break(简写为b)地址(类型包括:函数名、源文件行号,*内存地址)下断点break main
break 10
break *0x08000000
watch表达式当表达式的值被改变,程序将停止执行watch *((int*)0x80d1ba0)
clear地址和break相反,清除指定地址上的断点clear main
clear 10
clear *0x08000000
infobreak显示断点信息(断点的编号、种类、使能状态、地址以及位置)info break
disable断点编号禁用指定断点disable 1
enable断点编号启用一个被禁用的断点enable
delete(简写为d)断点编号删除指定断点delete 1

1.2 执行

`
GDB命令参数作用示例
run(简写为r)命令行参数运行程序run XFOCUS
attach进程号调试正在运行的程序attach 1022
continue(简写为c)次数(可选)继续执行,参数表示忽略几次断点c
c 4
next(简写为n)次数(可选)单步(不进入函数调用),参数表示执行几次nextn
n 4
nexti(简写为ni)次数(可选)单步(不仅如此函数调用)ni
ni 4
step(简写为s)次数(可选)单步(跟入函数调用)s
s 4
stepi(简写si)次数(可选)单步(跟入函数调用)si
si 4
until(简写为u)源文件行号执行到指定地址后中断u 18
finish运行当前函数知道函数退出finish
return立即退出当前函数return
注意:调试正在运行的命令,更常用的是:
gdb /path/program 1022

1.3 信息查看

`
GDB命令参数作用示例
info(简写为i)reg
break
files
args
frame
functions
显示各种信息info reg
info break
backtrace(简写为bt)帧的数目显示当前函数调用栈信息bt
print(简写为p)/f exp
(f为修饰,exp为表达式)
显示表达式的值,格式有
x 十六进制
c 字符
p/c 0x41
p/x 1024
p str
p/x $eax
x/nfu addr
(n为个数,f为格式,u为单元大小)如果没有指定地址则接着上一次x命令显示之后的地址
显示指定地址内容。
格式有:
x 十六进制
s 字符串
i 指令 等
单元大小有:
b h w g(b为一个字节,其他依次比前一个大一倍)
x/4i $pc
x/16xb $sp
x/s * (argv + 1)
x/s 0xbffffc52
list(简写为l)行号、函数或地址如果调试的是带符号的编译的程序,那么list命令可以列出程序源码l file.c:19
disass函数名翻汇编指定函数,如果没有指定参数默认为当前参数disass main

1.4 其他常用命令

`
GDB命令参数作用示例
回车重复执行上一条命令
set参数很多,建议输入help set查看设置值set var i=4
set {int}0xbffffc52=50
set {int}($esp+4)=$eip
shell外部shell命令执行外部shell命令shell ps -ef
quit(简写为q)退出gdbquit

二、GDB启动

2.1 用gcc编译程序

gcc -g a.c -o a

注:添加参数-g,会保留代码的文字信息。

2.2 使用GDB调试

gdb a

如果要减少不必要的提示信息,可以加-q参数,即

gcc -q a

参考资料

linux下gdb调试方法与技巧整理
gcc编译为什么要加-g选项
RUNOOB gdb参数详解
《网络渗透技术》许治坤著


原创不易,感谢支持。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wingaso

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值