博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GDB调试实用命令
阅读量:4316 次
发布时间:2019-06-06

本文共 1066 字,大约阅读时间需要 3 分钟。

个人感觉从windows平台转到linux平台一个不适应的地方就是调试器的使用。因为windows下调试器基本上都依赖快捷键和图像界面来完成操作,就算是windbg这种伪命令行的工具,命令也很简单比较好记。

相比之下GDB属于很复杂的了,网上找到的一些GDB的文章列出的往往都是一些没什么卵用的命令,所以开个帖子记录下常用的命令。

 

插件安装

1.gdb-peda

这是一个调试时必不可少的神器,github地址在: ,它的安装两条简单命令即可完成:

1.git clone https://github.com/longld/peda.git ~/peda

2.echo "source ~/peda/peda.py" >> ~/.gdbinit

peda的一个实用命令checksec检测安全保护。

peda的另一个实用命令searchmem用搜索内存

 

file 路径  附加文件

r       开始执行

c              继续执行

step          单步步入

next          单步步过

b *地址  下断点

enable       激活断点

disable      禁用断点

info b        查看断点

del num     删除断点

x/wx $esp   以4字节16进制显示栈中内容

stack 100    插件提供的,显示栈中100项

 find xxx     快速查找,很实用

s 按字符串输出

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

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

x/<n/f/u> <addr>

n、f、u是可选的参数。

b表示单字节,h表示双字节,w表示四字 节,g表示八字节

但是实际的组合就那么几种:

x/s 地址  查看字符串

x/wx 地址  查看DWORD

x/c 地址  单字节查看

x/16x $esp+12 查看寄存器偏移 

set args 可指定运行时参数。(如:set args 10 20 30 40 50) 

show args 命令可以查看设置好的运行参数。 

如上所示,这是peda的栈视图。其中红色的是栈帧的返回地址,蓝色的表示这个值可能为指针。、

针对peda的使用我已经单独开了一篇文章来写:http://www.cnblogs.com/Ox9A82/p/5729308.html

转载于:https://www.cnblogs.com/Ox9A82/p/5483186.html

你可能感兴趣的文章
centos7下kubernetes(2。kubernetes---start,重要概念)
查看>>
配置对象方法传参
查看>>
Luogu4547 THUWC2017 随机二分图 概率、状压DP
查看>>
1.窗体与界面设计-多媒体光盘
查看>>
Java如何在运行时识别类型信息?
查看>>
【环境】新建Maven工程步骤及报错解决方法
查看>>
CSS笔记
查看>>
洛谷 桶哥的问题——送桶——题解
查看>>
python基础语法(二)
查看>>
循环缓冲实现(ring buffer/circular buffer)
查看>>
我说过的那些话
查看>>
matplotlib函数理解
查看>>
java 学习日记---------简易学生信息管理系统
查看>>
jquery 中cache为true与false 的区别
查看>>
Jquery学习之DOM操作
查看>>
linux下ubuntu系统安装及开发环境配置
查看>>
使用混合云,要避开哪些坑?
查看>>
C#文件操作
查看>>
Spring SimpleJdbcTemplate查询示例
查看>>
java设计模式之外观模式(门面模式)
查看>>