一、tcl的除錯(ns-2.30)
用的比較少,一般用tcl-debug或者tkcon
二、gdb的除錯——即c++**的除錯(segment fault)
除錯工具gdb(source insight本質上也是呼叫gdb)
(1)、需要先在ns2中新增除錯資訊
1. 在~ns-2.30下的makefile檔案中新增-g,(注意要在root使用者下寫該才能儲存)如下:
ccopt = -wall -g
(注:若這裡不加-g除錯可能仍會正常,但是會把臨時變數從暫存器優化到記憶體,如果想要在除錯過程中,列印變數值,就會提示「no symbol "×" in current context. ")
static =
#ldflags = $(static)
ldflags =
ldout = -o $(blank)
2、修改makefile.in:加上-g3選項
.cc.o:
@rm -f $@
$(cpp) -g3
-c $(cflags) $(includes) -o $@ $*.cc
.c.o:
@rm -f $@
$(cc) -g3
-c $(cflags) $(includes) -o $@ $*.c
3、然後重新編譯:
make clean
make depend # 執行這個命令過程中如出錯,不用管!
make
(2)、gdb除錯ns2
以命令行為例
轉到ns-2.30目錄下,cd ~/test/aqua-sim-1.0/ns-2.30/
[easie@localhost ns-2.30]$ gdb ns //輸入gdb ns
即進入除錯
通過pwd命令可以獲得當前路徑,通過cd命令可以改變路徑。
a. 設定斷點:(gdb)
b filename.cc:123
b. 執行除錯:(gdb) r /path/***.tcl
or (gdb) run /path/***.tcl
(還是在ns-2.30目錄下)這裡設定為:(gdb)
這裡filename.cc是需要設定斷點的進行除錯分析的程式檔案,後面的數字表示斷點在檔案中的哪一行,path是檔案所在路徑,***.tcl是除錯的tcl指令碼檔案。
3)除錯常用命令
n/next:單步不進入
s/step
:單步進入
c/continue
:執行到下一斷點
finish: 已經進入了某函式,而想退出該函式回到它的呼叫函式中
bt:檢視堆疊呼叫
print:顯示資料,檢視各個變數或者表示式的值
whatis:顯示變數的型別
clear:刪除設定在特定檔案、行上的斷點,如clear filename:num
file file:裝載指定的可執行檔案進行除錯
help name:顯示指定命令的幫助資訊
info break:顯示當前斷點清單,包括到達斷點的次數等
info files:顯示被除錯檔案的詳細資訊
info func:顯示所有的函式名稱
info local:顯示當前函式中的區域性變數資訊
info prog:顯示被除錯程式的執行狀態
info var:顯示所有的全域性和靜態變數名稱
kill:終止正在除錯的程式
list:顯示源**段
make:在gdb中執行make工具
其他略。
斷點的管理:
a.
顯示當前gdb斷點資訊
(gdb) info break or (gdb) info b
b. 刪除某個指定的斷點
(gdb) delete breakpoint 1 刪除編號為1的斷點
(gdb) delete b 刪除所有斷點c.
禁用某個斷點
(gdb) disable breakpoint 1d.
允許使用某個斷點
(gdb) enable breakpoint 1
display var,顯示變數var的值
4)ns2中除錯技巧
場景測試
引數設定:為了使模擬更接近真實網路,引數選擇,非常重要!可以參看相關**
簡單測試: 用兩三個節點測試一下首發資料,根據trace檔案分析。
功能測試:測試每乙個功能,對於無線網路的,要測試多跳,各種拓撲。利用trace分析結果
NS2 除錯環境安裝 GDB
首先安裝gdb,這個比較容易 在 home ns allinone 2.35 ns 2.35 目錄下的makefile 檔案,找到55行附近 ccopt wall wno write strings 將這句修改為 ccopt wall wno write strings g 36行附近的兩行 cc ...
在NS2中用GDB來除錯
我想對於用ns來 的人來說,很重要的乙個問題就是除錯,因為並沒有像vc那樣方便的整合的除錯環境。ns與網路模擬 的書中介紹了tcl debug和kdevelop除錯的方法,這裡主要介紹gdb除錯的方法。因為偶個人第一次寫ns 除錯用的就是gdb,感覺安裝使用都很方便,這裡簡單介紹一下 2.修改mak...
2 專案搭建
1.開發專案,我們先的搭建乙個專案目錄,基本的專案目錄很簡單,就乙個index.html檔案 css js images資料夾。2.在實際開發中,我們基本遇到的也是這三個資料夾。index是專案的主要檔案,也是入口檔案。公司實際開發中也是這個樣子的。這三個資料夾是做什麼用的呢。css是層疊樣式表,也...