編譯器
1.gcc 檔名.c -o 路徑 生成檔名(g++ 檔名.cpp -o 路徑 生成檔名) 。編輯生成檔案。如果檔案不止乙個,一同加入即可。
2.上面末尾加 -wall,會生成錯誤提示以及警告。
3.如果編輯.c檔案,用gcc且用到數學庫時,應該末尾加-lm。g++編譯器便不用。
4.編譯時加上-g選項,可以對生成的程式進行gdb除錯。
偵錯程式0.ctrl+d退出偵錯程式
1.對生成的程式(末尾加-g生成的)輸入gdb 程式名即可。
2.輸入小寫l(list),會看到部分源程式清單。如果使用l 15,會顯示第15行(以及前後若干行)的**。也可以按函式名來檢視,如l main 將顯示mian函式開有的附近10行。如果直接輸入l,顯示下10行,輸入list-顯示上10行。
3.輸入r(run)執行程式,會一致執行到程式結束或者遇到斷點。
4.輸入b(break)設定斷點。如b main命令會在mian函式的開始處設定乙個斷點。
5.輸入c(continue)會使程式遇到斷點停止後繼續執行。
6.如果希望逐條執行語句,而又不想不停使用b和c,那麼可以用n(next)和s(step),其作用都是執行當前行,只是n把它作為乙個整體執行完畢,而s會步進到函式體內。在gdb中,只要按enter鍵,則自動執行上一條命令。
7.輸入u執行到指定位置,如 u 9 執行到第9行,u doit執行到doit函式開頭位置。
8.用p(print)+變數名可以列印出一些變數的值。
9.disp 把乙個表示式設定成display,當程式每次停下來時都會顯示其值。用d(delete)+disp+相應的display的標號可刪除相應display
10.i,顯示各種資訊用i lo(info locals)可以顯示所有的區域性變數。i b顯示所有斷點,i disp顯示所有display。
11.cl(clear),取消斷點,和b的格式相同。
編譯器 偵錯程式
linux mac下使用的編譯器是不同的。linux下使用的是gcc編譯器。mac下使用的是clang編譯器。命令格式都是相通的。編譯命令的基本格式 g會在輸出檔案裡可以增加除錯資訊,編譯出的程式在執行過程 現的問題就可以用偵錯程式進行單步除錯。o實際是指令優化的級別。預設 o1是不對指令優化,所以...
GCC編譯器和GDB偵錯程式常用選項
gcc hello.c o hello 將hello.c編譯成hello可執行檔案 gcc e hello.c o hello.i 將hello.c 轉換成預處理後的檔案hello.i gcc s hello.c o hello.s 將hello.c 轉換成彙編檔案 hello.s gcc c he...
GCC編譯器和GDB偵錯程式常用選項
gcc hello.c o hello 將hello.c編譯成hello可執行檔案 gcc e hello.c o hello.i 將hello.c 轉換成預處理後的檔案hello.i gcc s hello.c o hello.s 將hello.c 轉換成彙編檔案 hello.s gcc c he...