Linux--常用工具(2)--gdb偵錯程式--make/Makefile
阿新 • • 發佈:2021-02-06
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 :12 | l list |
下一步 逐過程 遇到函式執行完畢 | n next |
下一步 逐語句 遇到函式進入除錯 | s step |
直接執行到指定位置 until test.c:16 | until |
從當前位置執行 | c continue |
打斷點 break test.c:14 | b break |
檢視斷點 | ib info break |
刪除斷點 delete id | d delete |
變數監控斷點 變數發生變化就停下來 watch variable_name | watch |
退出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在生成目標物件的時候,先找到依賴物件的生成規則,先生成依賴物件,然後再去生成目標物件.
下面我對這一流程進行一個簡單的操作,方便大家理解:
這兩句比較簡單,我就不多解釋了,明天繼續加油!!!