g 和gdb簡單使用

2021-07-26 13:57:59 字數 2132 閱讀 3980

在編譯之前我們需要在系統裡安裝g++ gcc,它們就是linux下的c++/c的編譯器。

**如下

sudo apt-get install build-essential

#include

using namespace std;

int main()

void hello::display()

在g++中有乙個引數-c可以只編譯不連線,那麼我們就可以按如下順序編譯檔案

g++ -c hello.cpp -o hello.o

g++ -c myfirst.cpp -o myfirst.o

g++ myfirst.o hello.o -o myfirst

你是否會問,如果是乙個專案的話,可能會有上百個檔案,這樣的編譯法,人不是要累死在電腦前嗎,或者等到你編譯成功了,豈不是頭髮都白了,呵呵,所以我們要把上述的編譯過程寫進以下乙個文字檔案中:

linux下稱之為makefile

[code]

myfirst: myfirst.o hello.o

g++ myfirst.o hello.o -o myfirst

hello.o:hello.cpp

g++ -c hello.cpp -o hello.o

myfirst.o:myfirst.cpp

g++ -c myfirst.cpp -o myfirst.o

[code]

存目錄為myfirst,在終端輸入:make myfist

gdb偵錯程式是linux系統自帶的,他可以讓你觀察另乙個程式在執行時的內部活動,或程式出錯時發生了什麼。

程式出現了錯誤可是所有程式設計師共同的敵人,在編寫程式時我們應該盡量的去避免錯誤的出現,不過編寫的時候再怎麼都不可避免的出現這樣那樣的錯誤,對程式進行必要的除錯是乙個好主意,那我們怎麼來除錯程式呢,看下面:

在這裡我修改下,要想下面可以除錯,在上面編譯的時候必須加上引數 -g,g++ -g hello.cpp -o hello

1)編譯除錯程式。將多個原始檔編譯連線成乙個可執行檔案 gc

c−gh

ello

.c−o

hell

o2)啟

動gdb

除錯。再

對可執行

檔案用g

db進行

除錯gdb ./檔名 如$gdb ./hello

以下為除錯狀態下的可以用到的命令(也可以僅輸入命令的首字母,如break可簡為b),尖括號中為說明

list 《顯示源**》

break 行號 《設定斷點》

run < (設好斷點後)執行程式 >

continue 《繼續從斷點處執行》

print 變數 《除錯時檢視變數的值》

until 《結束當前迴圈》

watch 《在程式中設定乙個監測點》

delete 行號 《刪除乙個斷點或監測點》

step 《單步執行,可跟蹤到函式內部》

finish < 如果已經進入了某函式,而想退出該函式返回到它的呼叫函式,可使用該命令》

next 《單步執行,不可跟蹤到函式內部》

whatis 變數或函式 《顯示某個變數或函式的型別》

jump < 在源程式中的另一點開始執行》

set variable < 給變數賦值》

info source 《得知當前檔案的絕對路徑》

quit 《退出》

break命令設定斷點有如下四種形式:

1、(gdb)break 要指定的行

2、(gdb)break 要指定的函式名

3、(gdb)break 要指定的行或函式名 if 條件

4、(gdb)break 要指定的例程routine_name的入口處

如果該程式是由很多原始檔構成的,你可以在各個原始檔中設定斷點,而不是在當前的原始檔中設定斷點,其方法如下:

(gdb)break 檔名:行號

(gdb)break 檔名:函式名

要設定乙個條件斷點,可以利用break if 命令,如果條件是真,則設定斷點如下所示:

(gdb)break 行或函式名 if 條件

例: (gdb)break 46 if testsize == 100

linux 下g 和 gdb的使用總結

用gdb編譯程式時,首先在編譯程式時加 g gcc g test.c o test 執行方法有兩種 gdb test 或者gdb file test gdb 可以做什麼?1 gdb 可以以除錯模式啟動程式。2 gdb 可以 attach 到正在執行的程序 3 gdb 可以分析 core 檔案中的資訊...

gdb的簡單使用

gdb簡介 gdb的簡單使用 gdb execfile 可執行檔案 不過在要用gdb之前,編譯時要加上 g 選項 1 l list命令的簡寫 例如 l 12 將會顯示第12行 以及它前後若干行 l main 將顯示main函式開頭附近十行 不加引數,直接 l 會顯示下10行 list 將顯示上10行...

gdb的簡單使用

1.檔案清單 list 簡寫l list line 列出line行後面的10行 list 列出當前行後面的10行 list 列出當前行前面的10行 list function name 列出函式名為function name的10行 2.執行程式 run 簡寫r run 後面可加引數 set arg...