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...