Shell除錯手冊

2021-09-02 18:23:53 字數 1168 閱讀 7767

1、檢查語法-n

選項只做語法檢查,而不執行指令碼。

sh -n script_name.sh

2、啟動除錯

sh -x script_name.sh

進入除錯模式後,shell依次執行讀入的語句,產生的輸出中有的帶加號,有的不帶,如下。帶加號表示該條語句是shell執行的。不帶加號表示該語句是shell產生的輸出。

+ array=(123

45)+ for i in'$'

+ echo 1

13、中斷除錯

在除錯過程中可以按ctrl + z中斷除錯,觀察結果,然後再按fg鍵繼續除錯即可。

4、除錯**塊

上面的-x選項是除錯整個指令碼的,如果指令碼很大,會很不方便,還有一種方法是除錯某一塊**的,如下

set -x

...code block

...set +x

這樣,只對set -x與set +x之間的**進行跟蹤。

5、除錯函式

set -x

function call

set +x

6、常見錯誤診斷

***.sh: cannot shift

這種錯誤一般是引數傳遞有誤,比如沒有給引數,或者引數個數少了。因為shell指令碼使用shift來獲取下乙個引數,如果個數不對,shift命令就會失敗。

***.sh: ^m: not found

^m是windows上的回車符\r在unix上的顯示形式。這種情況多半是在windows上編輯了shell指令碼,然後拿到unix/linux上執行。只要將檔案中所有的\r刪除即可。

tr -d"\r"newfile.sh

或者乙個更標準的方法,因為\r的ascii碼是\015,所以可以這樣。

tr -d"\015"< oldfile.sh > newfile.sh

GDB除錯手冊

linux 包含了乙個叫gdb 的gnu 除錯程式。gdb 是乙個用來除錯c和c 程式的強力偵錯程式。它使你能在程式執行時觀察程式的內部結構和記憶體的使用情況。以下是 gdb 所提供的一些功能 它使你能監視你程式中變數的值 它使你能設定斷點以使程式在指定的 行上停止執行 它使你能一行行的執行你的 在...

gdb除錯手冊

gdb原理 利用作業系統提供的系統呼叫ptrace。詳情請看。gdb進行除錯的程序建議編譯引數新增 g 並去掉strip g3可在gdb列印巨集 儲存與恢復斷點 設定每步都列印的內容 gdb p ps ef grep worker grep v grep awk x a.txt 檔案內容 b rec...

gdb除錯手記

記錄一些gdb的使用經驗 假裝現在要除錯的二進位制程式叫a.exe,原始檔叫pleasedebugme.c 直接輸入gdb a.exe或者開啟gdb之後輸入file a.exe 首先用gcc g 編譯c c 程式時一定要加上 g選項,which means 加上除錯資訊,就像gcc g please...