linux 環境下 gdb 附加程序除錯程式

2022-09-04 05:15:08 字數 1003 閱讀 3524

1、找到程式的程序號 

2、gdb 程式名 程序號

gdb lobby 48012

3、設定斷點

以下摘自博文:

啟動gdb後,首先就是要設定斷點,程式中斷後才能除錯。在gdb中,斷點通常有三種形式:

斷點(breakpoint):

在**的指定位置中斷,這個是我們用得最多的一種。設定斷點的命令是break,它通常有如下方式:

可以通過info breakpoints [n]命令檢視當前斷點資訊。此外,還有如下幾個配套的常用命令:

觀察點(watchpoint):

在變數讀、寫或變化時中斷,這類方式常用來定位bug。

可以通過info watchpoints [n]命令檢視當前觀察點資訊

捕捉點(catchpoint):

捕捉點的命令格式是:catch ,event可以是下面的內容

另外,還有乙個tcatch ,功能類似,不過他只設定一次捕捉點,當程式停住以後,應點被自動刪除。

捕捉點資訊的檢視方式和**斷點的命令是一樣的,這裡就不多介紹了。

在特定執行緒中中斷

你可以定義你的斷點是否在所有的執行緒上,或是在某個特定的執行緒。gdb很容易幫你完成這一工作。

linespec指定了斷點設定在的源程式的行號。threadno指定了執行緒的id,注意,這個id是gdb分配的,你可以通過"info threads"命令來檢視正在執行程式中的執行緒資訊。如果你不指定thread 則表示你的斷點設在所有執行緒上面。你還可以為某執行緒指定斷點條件。如:

(gdb) break frik.c:13 thread 28 if bartab > lim

當你的程式被gdb停住時,所有的執行執行緒都會被停住。這方便你你檢視執行程式的總體情況。而在你恢復程式執行時,所有的執行緒也會被恢復執行。那怕是主程序在被單步除錯時。

恢復程式執行和單步除錯

gdb的遠端除錯 附加程序除錯

遠端主機 機器b 192.168.2.2 本地主機 機器a 192.168.2.1 要除錯的程式 在機器a上。在所有機器上安裝gdb,ubuntu上可通過以下方式安裝 apt get install gdb 如果要使用gdb除錯程式,程式編譯時必須加上 g引數,如下所示 g g hello.cpp ...

VS除錯技巧之附加程序

事實上原理還是一樣的。僅僅只是用f5的時候vs自己主動的把各種動作執行完成。如今我們來手動操作而已。大致的過程例如以下 在iis加入的專案中右鍵目標頁,選擇瀏覽,等待瀏覽器響應就可以 這個時候相當於啟動了iis程序 假設我們不是以管理員執行的vs,它會提示你須要許可權。我們右鍵vs的圖示選擇 以管理...

VS除錯技巧之附加程序

其實原理還是一樣的,只不過用f5的時候vs自動的把各種動作執行完畢,現在我們來手動操作而已。大致的步驟如下 在iis新增的專案中右鍵目標頁,選擇瀏覽,等待瀏覽器響應即可 這個時候相當於啟動了iis程序 在vs中找到 除錯 選單,選擇 新增到程序 之後彈出如下對話方塊,將 顯示所有回話中的程序 打勾,...