GDB偵錯程式 工程管理器 make和指令碼Shell

2021-08-31 13:46:30 字數 1650 閱讀 5211

一、gdb功能:

1、啟動被除錯程式;

2、讓被除錯程式在指定的位置停住;

3、當程式被停住時,可以檢查程式狀態–變數值

gcc -g test.c -o test

gdb test 啟動gdb

break main 在main函式處設定斷點

run(r) :執行程式

next(n) :單步執行程式(不進入子函式)

step(s) :單步執行程式

continue(c) :繼續執行程式

print(p)變數名 :檢視指定變數值

finish :執行程式,直到當前函式結束

watch 變數名 :對指定變數進行監控

quit(q) :退出gdb

list(l):檢視程式 list 10 //從第10行開始檢視

break(b)函式名 :在某函式入口處新增斷點

break(b) 行號 :在指定行新增斷點

break(b)行號 if 條件 例:b 5 if i=10 //當i等於10時,第5行斷點生效

info break :檢視所有設定的斷點

delete 斷點編號 :刪除斷點

二、工程管理器–make

能夠根據檔案時間戳自動發現更新過的檔案而減少編譯的工作量,同時,通過讀入makefile檔案的內容來執行大量的編譯工作。

makefile是make讀入的唯一配置檔案

makefile的編寫規則:

a、由make工具建立的目標體(target),通常是目標檔案,或可執行檔案

b、要建立的目標體所依賴的檔案

建立每個目標體時需要執行的命令(command),這一行必須以製表符開頭

表示形式: 目標體:目標檔案1 目標檔案2

gcc -o 目標體 目標檔案1 目標檔案2

目標檔案1:源程式1.c

gcc -c 源程式1.c

目標檔案2:源程式2.c

gcc -c 源程式2.c

.phony:clean //宣告偽目標

clean:

[命令]

若要新增目標檔案3

方法:使用變數

obj:目標檔案1 目標檔案2 目標檔案3

hello:$(obj)

gcc $(obj) -o hello

在makefile中,存在系統預設的自動變數

$^ :代表所有的依賴檔案

$@ :代表目標

$< :代表第乙個依賴檔案

hello : hello.c

@gcc hello.c -o hello

注:@表示取消回顯

#表示注釋內容

三、shell(命令列直譯器)——c語言編寫的程式

格式:#!/bin/sh

chmod +x filename

./filename

變數名=值 「=」兩邊不能有空格

取出變數值用 $變數名

bash中的語句結尾不加分號

列印變數的內容:

echo [內容]

echo $變數名

預設變數

$# :傳入指令碼的命令列引數個數

$* :所有命令列引數值,在各個引數值用空格隔開

$0 :命令本身

$1 :第乙個命令引數

$2 :第二個命令引數

偵錯程式gdb 工程管理器 make

格式 gcc g 檔名.c o 可執行檔案 gdb 可執行檔案 list 檢視程式 quit 退出 run 執行 break 行號 設定斷點 break 行號 if i 3 語句 info break 檢視斷點 delete 斷點編號 刪除斷點 next 單步執行 不進入子函式 step 單步執行 ...

gdb偵錯程式與make工程管理器

gdb偵錯程式 gdb是gnu開源組織發布的乙個強大的unix下的程式除錯工具,gdb主要可幫助工程師完成下面4個方面的功能 1.啟動程式,可以按照工程師自定義的要求隨心所欲的執行程式。2.讓被除錯的程式在工程師指定的斷點處停住,斷點可以是條件表示式。3.當程式被停住時,可以檢查此時程式中所發生的事...

make工程管理器及gdb偵錯程式 基本知識

make工程管理器完全根據 makefile 檔案中的編譯規則進行編譯,makefile 由以下三項基本內容組成 1 需要生成的目標檔案 target file 2 生成目標索取要的依賴檔案 dependency file 3 生成目標檔案的編譯規則命令列 command 這三項內容按以下格式進行組...