GDB的啟動方式

2022-06-21 06:00:16 字數 972 閱讀 5728

1.直接啟動

gdbgdb test.out

gdb test.out core 異常崩潰時產生的core

2.動態連線

gdb test.out pid(程序)

動態的跟蹤pid程序的行為

3.gdb應用示例一

gdb   //啟動

(gdb) file test.out  //載入目標程式

(gdb) set args arg1  arg2   //設定命令列引數

(gdb) run   //執行目標程式

還有乙個start命令,start在啟動程式後,會立即停止。

gdb 

(gdb) file test.out 

上面兩條語句等價於:gdb test.out

4.gdb應用示例二:動態的跟蹤、監視某個程序的執行

gdb  //啟動

(gdb) attach pid  //鏈結到目標程序,鏈結成功後,目標程序將停止執行。

(gdb) continue  //恢復執行

gdb 

(gdb) attach pid  

上面兩條語句等價於gdb test.out pid

將test.out先執行起來

在另乙個終端獲得程序的pid

然後執行:gdb

(gdb) attach pid

5.gdb使用初探

gcc -g test.c func.c -o test.out

ulimit -c unlimited  (讓程式在崩潰時產生core檔案)

gdb test.out core

定位到func.c檔案的第7行出現了問題

*g_pointer = (int )"d.t.software";

想把g_pointer所指的位址處寫乙個整型值,然而g_pointer指向0位址處(為什麼?因為定義了int* g_pointer ,它是全域性變數,沒有進行初始化,預設為0)

gdb幾種設定斷點的方式

gdb幾種設定斷點的方式 方式1 根據函式名,查詢符號 symbol 設定斷電 此種方式最為簡單,閱讀源 了解函式如何呼叫,在需要暫停執行的函式入口進行斷點設定。但並不是所有函式,任何時候都能設定斷點的。比如優化後的靜態函式,inline函式。在特定的情況下,通過函式名進行斷點設定便不可為,而又需要...

GDB設定啟動引數和啟動指令碼

1 啟動引數 在 root目錄建立名為 gdbinit的檔案 注意以 開頭的檔案 可在此檔案內設定以下引數 set confirm off set pagination off set print pretty on set print thread events off set solib sea...

Android Activity的啟動方式

1 standard 這種方法啟動乙個activity,都會壓到棧中 2 singletop 這種方法啟動activity,首先會檢查棧頂是否是該activity的例項,若是則不壓棧,若不是則將該例項壓棧 3 singletask 這種方法啟動activity,首先會檢查在棧中是否存在該activi...