gdb跟蹤版面刪除過程

gdb跟蹤bbs中刪除版面的過程:
先登陸bbs,比如pid是nnn(數字)
$gdb src/bbs -p nnn                <---attach上進程
在menu.ini裏找到對應於"[B]oardDel 砍掉討論區"功能菜單,如下
@DelBoard    0, 0, PERM_BLEVELS, "Board Delete","[B]oardDel     砍掉討論區"
第一列的DelBoard就是這一功能的函數。
而“DelBoard”在ht/src/comm_lists.c程序中對應於刪除版面的函數d_board,如下所示

{"DelBoard", (void *) d_board}, {"SetTrace", (void *) m_trace},
所以要把d_board函數設置爲斷點進行跟蹤。
attach上之後,程序會停住,按c繼續運行,然後到斷點就停,再s或者n就行。

$tb d_board                        <---設臨時斷點在d_board函數

然後
n是step over;s是step into;p是顯示變量值
c是繼續運行
gdb提供兩種方式:1.單步進入,step into就是跟蹤到函數內啦。命令是step或s
                 2.單步,next,就是簡單的單步,不會進入函數。命令是next或n

發佈了47 篇原創文章 · 獲贊 1 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章