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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章