1. 常用的gdb命令
1)顯示** - list
list 顯示10行**
list 1 顯示1-10行,再鍵入list或者回車,顯示下面10行**
list 1,20 顯示1-20行
2)設定斷點 - break
break 15 在第15行設定斷點
break func 在函式func()入口設定斷點
info break 顯示斷點資訊
delete 1 刪除斷點
3)單步執行 - next/n
單步跟蹤 - step/s
s: 執行一行源程式**,如果此行**中有函式呼叫,則進入該函式;
n: 執行一行源程式**,此行**中的函式呼叫也一併執行。
繼續執行 - continue
4)列印變數值 - print
print a
5)檢視函式堆疊 - backtrace/bt
bt n 顯示棧頂n楨(frame)
bt -n 顯示棧底n楨(frame)
frame n 顯示第n幀的資訊
info args 檢視某函式棧框裡面引數名及值
info locals 檢視某函式棧框裡面區域性變數的值
退出函式 - finish
退出gdb - quit
2. 用gdb來理解:值傳遞/指標傳遞/引用傳遞
總結:
void myfun(int a) //傳值,產生複製
void myfun(int& a) //
傳引用,不產生複製
void myfun(int* a) //
傳位址,產生複製,本質上是一種傳值,這個值是位址
C 值傳遞 指標傳遞 引用傳遞 理解
最近寫了幾篇深層次討論陣列和指標的文章,其中提到了 c語言中,所有非陣列的形式引數傳遞均以值傳遞形式 而關於值傳遞,指標傳遞,引用傳遞這幾個方面還會存在誤區,所有我覺的有必要在這裡也說明一下 下文會通過例子詳細說明哦 值傳遞 形參是實參的拷貝,改變形參的值並不會影響外部實參的值。從被呼叫函式的角度來...
學習記錄(1) 引用傳遞 值傳遞 位址傳遞
同樣對於交換兩個數的值 1.引用傳遞 函式原型宣告 void swap int a,int b 函式定義 swap int a,int b int temp temp a a b b temp 函式呼叫 swap a,b 2.值傳遞 函式原型宣告 void swap int a,int b 函式定義...
值傳遞,引用傳遞,指標傳遞
最近一直被c 的值傳遞,引用傳遞,指標傳遞這些概念所困擾,一直沒有乙個能說清他們之間的關係通過乙個簡單的例項,或者說淺顯的說法,找了一些相關資料,和自已的個人感受,簡單介紹一下,希望高人指正 c 中傳遞引數的方式有三種 傳引數的值 稱為值傳遞,簡稱傳值 傳引數的位址 稱為位址傳遞,簡稱為傳址 和引用...