1. 程式人生 > 其它 >Linux--常用工具(2)--gdb偵錯程式--make/Makefile

Linux--常用工具(2)--gdb偵錯程式--make/Makefile

技術標籤:Linux自我理解linux程式語言

Linux常用工具(2)

gdb偵錯程式

gdb偵錯程式是用來檢查程式碼錯誤的東西,當出現錯誤的時候我們就可以用偵錯程式高效的找出程式碼的錯誤.
錯誤分類: 編譯錯誤 .連結錯誤.執行時錯誤.
前提: 程式要進行除錯,必須是一個debug版本的,又因為gcc和g++預設生成的是release版本的,所以我們就需要運用g進行轉換,然後才能進行編譯.

gcc -g test.c -o test			//將其變成debug版本,方便進行除錯

gdb ./test.exe					//常用除錯指令

流程控制

流程控制:下面是一些命令符的操作,一定要熟練掌握:(加粗為簡寫

,斜體舉例)

具體功能操作符
直接執行程式r run
開始逐步除錯start
檢視除錯行附近的程式碼 list test.c :12l list
下一步 逐過程 遇到函式執行完畢n next
下一步 逐語句 遇到函式進入除錯s step
直接執行到指定位置 until test.c:16until
從當前位置執行c continue
打斷點 break test.c:14b break
檢視斷點ib info break
刪除斷點 delete idd delete
變數監控斷點 變數發生變化就停下來 watch variable_namewatch
退出gdb除錯q quit

記憶體控制

同上:

具體功能操作符
檢視或設定變數內容 print var_name
p print
檢視函式呼叫棧bt backtrace

make/Makefile

對於這個板塊主要是要理解之間的關係,多看看就好啦!如圖:
在這裡插入圖片描述
在這裡插入圖片描述
預定義變數使用:

物件對應符號
目標物件[email protected]
所有依賴物件$^
表示依賴物件的第一個$<

偽物件: 宣告一個目標物件與外部檔案無關,可以一直重新生成. eg: .PHONY:
make的解釋執行規則:
1.在命令列中敲擊make,程式會自動在目錄下找到makefile/Makefile的檔案,對內部進行構建規則.
2.在規則中,找到要生成的地一個目標物件
3.make每次只會找Makefile中的第一個物件.進行解釋完後就會退出,(你如果需要執行多個語句的話,那你就需要把最終生成的語句寫在最前面,這樣執行第一個語句的時候,遇到內部如果有其他的物件就會去被動呼叫這些函式,就可以執行多個物件了

)
4.make在生成目標物件的時候,先找到依賴物件的生成規則,先生成依賴物件,然後再去生成目標物件.
下面我對這一流程進行一個簡單的操作,方便大家理解:
在這裡插入圖片描述
在這裡插入圖片描述
這兩句比較簡單,我就不多解釋了,明天繼續加油!!!