Makefile Debug 除錯輸出變數值

2021-09-19 12:54:47 字數 1224 閱讀 9899

$(warning $(***)) 列印變數的值

1,使用info/warning/error增加除錯資訊

方法1: $(info, 「here add the debug info」)

但是此不能列印出.mk的行號

方法2: $(warning 「here add the debug info」)

方法3: $(error 「error: this will stop the compile」)

這個可以停止當前makefile的編譯

方法4: 列印變數的值

$(info $(target_device) )

2,使用echo增加除錯資訊(echo只能在target:後面的語句中使用,且前面是個tab)

方法1: @echo 「start the compile*********************xx」

方法2: @echo $(files)

命令列選項

有時候,我們不想讓我們的makefile中的規則執行起來,我們只想檢查一下我們的命令,或是執行的序列。於是我們可以使用make命令的下述引數:

「-n」 「--just-print」 「--dry-run」 「--recon」不執行引數,這些引數只是列印命令,不管目標是否更新,把規則和連帶規則下的命令列印出來,但不執行,這些引數對於我們除錯makefile很有用處。

「-t」 「--touch」這個引數的意思就是把目標檔案的時間更新,但不更改目標檔案。也就是說,make假裝編譯目標,但不是真正的編譯目標,只是把目標變成已編譯過的狀態。

「-q」 「--question」這個引數的行為是找目標的意思,也就是說,如果目標存在,那麼其什麼也不會輸出,當然也不會執行編譯,如果目標不存在,其會列印出一條出錯資訊。

「-w ;」 「--what-if=;」 「--assume-new=;」 「--new-file=;」這個引數需要指定乙個檔案。一般是是原始檔(或依賴檔案),make會根據規則推導來執行依賴於這個檔案的命令,一般來說,可以和「-n」引數一同使用,來檢視這個依賴檔案所發生的規則命令。

三個最適合用來除錯的命令列選項:

--just-print(-n)

--print-database(-p)

--warn-undefined-variables

參考文章

makefile常用除錯方法

gdb 除錯 vs除錯

一 先要生成二進位制檔案 g g 1.cpp o 1.out g引數不要省,不然 gdb l 引數用不了 二 引數 設定斷點 設定 函式斷點break func 在某行設定斷點break 7 檢視斷點資訊 info break 刪除斷點 d 刪除所有斷點 d 3 刪除第三個 執行 r 下一步 n 逐...

VC2005除錯 DLL除錯, 遠端除錯

vc2005 dll除錯 如果exe檔案和dll一樣,都處於你乙個開發的狀態,那麼可以放在同乙個解決方案中,直接除錯 但是,有時候,我們開發的dll,是給其他人使用的,或者,你此時不想除錯exe 這時候,可以在dll工程選項中,選擇 除錯 選項卡 工作目錄 填入exe檔案所在的目錄 比如d test...

gdb除錯,交叉編譯除錯

root localhost pwd root root localhost cat gdbinit.bak set solib absolute prefix opt embedsky 4.3.3 arm none linux gnueabi set solib search path opt e...