gdb跟蹤版面刪除過程

2021-03-31 08:57:00 字數 621 閱讀 2827

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/***m_lists.c程式中對應於刪除版面的函式d_board,如下所示

, ,所以要把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

gdb 跟蹤除錯

要進行除錯程式首先要生成一個含有除錯資訊的執行程式命令如下 此時便會生成一個含有除錯資訊的可執行檔案,然後便可以用 gdb 去除錯這個程式了,進入除錯程式命令,但是如果用 gdb 去除錯一個未包含除錯資訊的可執行檔案則會發生錯誤 執行 gdb gdb 啟動常用的引數 從指定檔案中讀取符號表資訊,並把...

GDB堆疊跟蹤

gdb堆疊跟蹤的方法 程式 呼叫堆疊 是當前函式之前的所有已呼叫函式的列表 包括當前函式 每個函式及其變數都被分配了一個 幀 最近呼叫的函式在 0 號幀中 底部 幀 要列印堆疊,發出命令 bt backtrace 回溯 的縮寫 gdb bt 0 0x80483ea in wib no1 8,no2 ...

GDB堆疊跟蹤的方法

gdb堆疊跟蹤的方法 程式 呼叫堆疊 是當前函式之前的所有已呼叫函式的列表 包括當前函式 每個函式及其變數都被分配了一個 幀 最近呼叫的函式在 0 號幀中 底部 幀 要列印堆疊,發出命令 bt backtrace 回溯 的縮寫 gdb bt 0 0x80483ea in wib no1 8,no2 ...

gdb 跟蹤除錯命令整理

內容源自於陳浩csdn部落格的用gdb除錯程式一系列文章 要進行除錯程式首先要生成一個含有除錯資訊的執行程式命令如下 此時便會生成一個含有除錯資訊的可執行檔案,然後便可以用 gdb 去除錯這個程式了,進入除錯程式命令,但是如果用 gdb 去除錯一個未包含除錯資訊的可執行檔案則會發生錯誤 執行 gdb...

Linux 從GDB談程序跟蹤

程序跟蹤的系統呼叫是ptrace 通過 ptrace 一個程序可以動態的讀寫另一個程序的記憶體和暫存器,包括資料段 段 堆疊以及所有的暫存器。從概念上來說,著似乎也是程序間通訊的一種方法。但實際上,這種通訊是單方面的,被跟蹤的程序並不知道自己是在收到控制和監視的條件下進行。從這個角度來說,這又不屬於...