GDB移植及调试

GDB移植及调试


一、GDB移植


1.1、下载GDB源码

下载地址:http://ftp.gnu.org/gnu/gdb/
选择gdb-8.2.1.tar.gz版本下载

tar -zxvf gdb-8.2.1.tar.gz

-z表示解压gz包 -x表示解压 -v表示详细过程 -f表示文件
解压后可在当前目录看到压缩包同名文件夹

1.2、添加交叉编译工具链

  ./configure --host=arm-linux-gnueabihf --enable-shared --prefix=$PWD/output/arm --without-x  
  --disable-gdbtk --disable-tui --without-included-regex --without-included-gettext

--host=arm-linux-gnueabihf 指定编译器
--enable-shared 动态编译
--prefix="$PWD/../output/arm生成的目录文件
--without-x 取消x windows 支持
--disable-gdbtk 取消gdbtk,应该也是图形界面相关的
--disable-tui 取消tui 界面
--without-included-regex 关闭正则表达式库
--without-included-gettext 去掉用于多语言处理gettext库

1.3、编译及操作

make 
make install 

make 编译
make install 安装

二、GDB调试


2.1、常见指令

2.1.1、 开始|停止|复位
命令描述
s(start)执行程序,并停在main函数第一条语句前
r(run)连续执行程序,直到断点
c(continue)继续执行程序,直到断点
2.1.2、基本命令
命令描述
backtrace(或bt)查看各级函数调用及参数
finish连续运行到当前函数返回为止,然后停下来等待命令
list(或l)列出源代码,接着上次的位置往下列,每次列10行
list 行号列出从第几行开始的源代码
list 函数名列出某个函数的源代码
next(或n)执行下一行语句
print(或p)打印表达式的值,通过表达式可以修改变量的值或者调用函数
quit(或q)退出gdb调试环境
step(或s)执行下一行语句,如果有函数调用则进入到函数中
wath观察一个变量
current跳转到下个断点,或则跳转到观察点
set var 变量名=变量值修改变量值
2.1.3、单步调试
命令描述
b(break) nn行设置断点,永久生效
b 函数名函数设置断点
tb(tbreak)临时断点,阅后即焚的效果
****if 条件if表示设置条件断点,只有条件为真时,才中断,结合其他断点设置语法使用.eg:b 10 if i99,即10行的断点,如果变量i99,才生效
i(info) breakpoints查所有的断点
delete breakpoints n删除n号断点,其中n为断点的序列号,可以用info breakpoints查看
disable breakpoints n失能n号断点
enable breakpoints n使能n号断点
2.1.3、信息打印
命令描述
i(info) 变量名查看一个变量的值
i locals查看所有局部变量的值
p(print) 表达式p 变量名=变量值,修改变量值
p 变量查看变量值
display 变量名使得程序每次停下来都会显示变量的值,取消显示,使用>undisplay 序号,序号可通过 >info display 查看
bt(backtrace)查看函数调用栈
frame nn为栈的层次,然后可以用其他命令(info)查看此级别的变量信息
x/nfu查看从变量名开始的n个字节,例x/7bx input 表示查看从变量input开始的7个内存单元的内容
2.1.4、观察点管理
命令描述
watch 变量名当程序访问变量名指定的内存单元时,停止程序
info watchpoints查看
delete watchpoints删除
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值