GDB的啟動方式


1.直接啟動

gdb

gdb 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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM