Gdbinit 无法调用的问题

1、.gdbinit 文件是什么:

gdb在启动的时候,会在你的当前工作目录下查找 ".gdbinit" 这个文件,并把它的内容作为gdb命令进行解释,所以如果我把脚本命名为".gdbinit",这样在启动的时候就会处理一些你常用的命令。

注意:这里当前工作目录是提示 ~的目录,一般是/home/xxx。
如何查看该目录:
1、cd ~ 切到当前工作目录
2、pwd 查看该目录的路径


实际使用时,会存在一个问题,比如你需要在 D:/worksapce下Debug, 因此,你想在 D:/worksapce 下添加.gdbinit 方便调试。
这个时候如果直接 D:/worksapce 下添加.gdbinit, 然后调用GDB
会报如下错误:

auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".

怎么办?

解决办法如下:
1、在/home/xxxx 下添加一个.gdbinit, 默认GDB初始化时会调用这个文件。
2、编辑该.gdbinit, 加上 set auto-load safe-path /

set auto-load safe-path D:/workspace/

3、在D:/workspace/ (即你要Debug的目录)下,同样添加一个.gdbinit
4、编辑该.gdbinit,添加你需要的一些指令,例如:

set style address foreground red  //将地址的颜色改成红色
# 保存历史命令
set history filename ./.gdb_history
set history save on
 
 
# 记录执行gdb的过程
set logging file ./.log.txt
set logging on
 
 
# 退出时不显示提示信息
#set confirm off
 
 
# 打印数组的索引下标
set print array-indexes on
 
 
# 每行打印一个结构体成员
set print pretty on
 

此外GDB还支持自定义,语法结构遵循如下基本格式:

define <command>
<code>
end
document <command>
<help text>
end

该命令称为用户命令。可以将所有其他标准 GDB 命令与流控制指令结合使用并向其传递参数,从而创建一种语言,以允许为正在调试的特定应用程序而自定义调试器的行为。

# 退出并保留断点
define qbp
save breakpoints ./.gdb_bp
quit
end
document qbp
Exit and save the breakpoint
end
 
 
# 保留历史工作断点
define downbp
save breakpoints ./.gdb_bp
end
document downbp
Save the historical work breakpoint
end
 
 
# 加载历史工作断点
define loadbp
source ./.gdb_bp
end
document loadbp
Load the historical work breakpoint
end
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值