GDB相關

下面三個網頁,講解了基本的gdb用法。

https://blog.csdn.net/Z_Dream_ST/article/details/77840733###
http://www5.zzu.edu.cn/qwfw/info/1041/2414.htm
https://blog.csdn.net/xiongxinlei/article/details/78200275

額外,基本的
p *this 輸出當前堆棧的信息

set args  {args}
# 這裏的{args}代表bin文件的輸入信息 
set directories {args}
# 這裏的{args}是指代碼路勁
gdb {bin}
# 這裏的{bin}文件即是基本的bin文件。
b {file:25}
# {file:25} 這裏是指在file的25行加上斷點。
delete break n
# 刪除當前文件對應的斷點
delete break
# 刪除所有斷點,這個待測試

下面介紹基本的用法:
調試程序通常有兩種基本的調試方法:
·斷點調試:設置斷點進行執行、觀察斷點的執行狀態
·單步調試:每執行一個語句就暫停、觀察語句運行情況

使用run命令(支持簡單輸入r形式)開始執行程序,如果遇到斷點就會暫停,否則繼續執行。程序暫停後,從斷點繼續執行後續代碼,需要使用cont命令(或輸入c)。kill命令停止程序執行。
單步執行就是執行一條語句後再次暫停(不必爲此設置斷點),主要有兩條命令:
next N # step over,單步執行語句,不進入子程序(函數)調試、直接調用完成
step N # step into,跟蹤執行語句,進入子程序(函數)當中進行調試(但不會進入沒有調試信息的子程序當中,包括系統功能調用、標準函數等)
finish # step out,執行完成當前函數
如果指明參數N,則表示執行N條指令後暫停。對應單步執行語句命令step和next,還有單步執行指令命令stepi和nexti。高級語言的一條語句可以由許多機器指令組成,但彙編語言中一個語句通常就是一個機器指令。所以進行彙編語言級調試,step和stepi,next和nexti是一樣的。

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