標籤:style blog http color 使用 檔案
makefile的模板
all: rover server stationrover: rover.c tcputil.o gcc rover.c tcputil.o -o rover -lpthreadserver: server.c tcputil.o gcc server.c tcputil.o -o server -lpthreadstation:station.c tcputil.o gcc station.c tcputil.o -o station -lpthreadtcputil:tcputil.c gcc tcputil.c -c -lpthread.PHONY: cleanclean: rm -f *.o rover server station
- 引號後面的檔案代表需要的材料
- .PHONY:指令聲明,虛檔案
GDB的使用
1、要調試C/C++的程式,首先在編譯時間,我們必須要把調試資訊加到可執行檔中。使用編譯器(cc/gcc/g++)的 -g 參數可以做到這一點。如:
> gcc -g hello.c -o hello
> g++ -g hello.cpp -o hello
2、啟動GDB的方法有以下幾種:
a、gdb <program>
program也就是你的執行檔案,一般在當然目錄下。
b、gdb <program> core
用gdb同時調試一個運行程式和core檔案,core是程式非法執行後core dump後產生的檔案。
c、gdb <program> <PID>
如果你的程式是一個服務程式,那麼你可以指定這個服務程式運行時的進程ID。gdb會自動attach上去,並調試他。program應該在PATH環境變數中搜尋得到。
3、gdb -help
4、指令表
(gdb) l |
l命令相當於list,從第一行開始例出原碼 |
| (gdb) |
直接斷行符號表示,重複上一次命令 |
| (gdb) break 16 |
設定斷點,在來源程式第16行處 |
| (gdb) break func |
設定斷點,在函數func()入口處 |
| (gdb) info break |
查看斷點資訊 |
| (gdb) r |
運行程式,run命令簡寫 |
| (gdb) n |
單條語句執行,next命令簡寫 |
| (gdb) c |
繼續運行程式,continue命令簡寫 |
| (gdb) p i |
列印變數i的值,print命令簡寫 |
| (gdb) bt |
查看函數堆棧 |
| (gdb) finish |
退出函數 |
| (gdb) q |
退出gdb |
x 按十六進位格式顯示變數。
d 按十進位格式顯示變數。
u 按十六進位格式顯示無符號整型。
o 按八進位格式顯示變數。
t 按二進位格式顯示變數。
a 按十六進位格式顯示變數。
c 按字元格式設定顯示變數。
f 按浮點數格式顯示變數。
(gdb) p i
$21 = 101
(gdb) p/a i
$22 = 0x65
(gdb) p/c i
$23 = 101 ‘e‘
(摘自http://blog.csdn.net/haoel/article/details/2879)
DDD:帶圖形介面的Debugger
ddd在ubuntu下的安裝:sudo apt-get install ddd