Linux GDB除錯NS2專案詳細步驟

2021-08-04 07:04:47 字數 2614 閱讀 2275

一、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是層疊樣式表,也...