Vim編輯器
實驗一.Vim快速入門
1.Vim模式介紹
幾乎所有的編輯器都會有插入和執行指令兩種模式,并且大多數的編輯器使用了與Vim截然不同的方式:指令目錄,組合鍵或者滑鼠輸入。Vim和vi一樣,僅僅通過鍵盤來在這些模式之中切換。這就使得Vim可以不用進行菜單或者滑鼠操作,并且最小化組合鍵的操作。對文字錄入員或者程式員可以大大增強速度和效率。
Vim具有6種基本模式和5種派生模式,6種基本模式:
- 普通模式(Normal mode)
在普通模式中,用的編輯器指令,比如移動光标,删除文本等等。這也是Vim啟動後的預設模式。這正好和許多新使用者期待的操作方式相反(大多數編輯器預設模式為插入模式)。
普通模式指令
删除目前行,但是第一個"d"的後面可以跟另外的移動指令來代替第二個
dd
,比如用移動到下一行的"j"鍵就可以删除目前行和下一行。另外還可以指定指令重複次數,
d
(重複
2dd
兩次),和
dd
dj
的效果是一樣的。
在普通模式中,有很多方法可以進入插入模式。比較普通的方式是按
(append/追加)鍵或者
a
(insert/插入)鍵。
i
- 插入模式(Insert mode)
在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新使用者希望文本編輯器編輯過程中一直保持這個模式。
在插入模式中,可以按
鍵回到普通模式。
ESC
- 可視模式(Visual mode)
這個模式與普通模式比較相似。但是移動指令會擴大高亮的文本區域。高亮區域可以是字元、行或者是一塊文本。當執行一個非移動指令時,指令會被執行到這塊高亮的區域上。Vim的"文本對象"也能和移動指令一樣用在這個模式中。
- 選擇模式(Select mode)
這個模式和無模式編輯器的行為比較相似(Windows标準文本控件的方式)。這個模式中,可以用滑鼠或者光标鍵高亮選擇文本,不過輸入任何字元的話,Vim會用這個字元替換選擇的高亮文本塊,并且自動進入插入模式。
- 指令行模式(Command line mode)
在指令行模式中可以輸入會被解釋成并執行的文本。例如執行指令(鍵),搜尋(
:
和
/
鍵)或者過濾指令(
?
鍵)。在指令執行之後,Vim傳回到指令行模式之前的模式,通常是普通模式。
!
- Ex模式(Ex mode)
這和指令行模式比較相似,在使用
:visual
指令離開Ex模式前,可以一次執行多條指令。
這其中我們常用到就是普通模式、插入模式和指令行模式,本課程也隻涉及這三個常用模式的内容
2.三種常用模式的切換
vim啟動進入普通模式,處于插入模式或指令行模式時隻需要按
Esc
或者
Ctrl+[
(這在vim課程環境中不管用)即可進入普通模式。普通模式中按
i
(插入)或
a
(附加)鍵都可以進入插入模式,普通模式中按
:
進入指令行模式。指令行模式中輸入
wq
回車後儲存并退出vim。
3.進入vim
使用vim指令進入vim界面:
vim後面加上你要打開的已存在的檔案名或者不存在(則作為建立檔案)的檔案名。 打開Xfce終端,輸入以下指令
$ vim practice_1.txt
直接使用vim也可以打開vim編輯器,但是不會打開任何檔案。
$ vim
進入指令行模式後輸入
:e 檔案路徑
同樣可以打開相應檔案。
遊标移動:
在進入vim後,按下
i
鍵進入插入模式。在該模式下您可以輸入文本資訊,下面請輸入如下三行資訊:
12345678
abcdefghijk
shiyanlou.com
按
Esc
進入普通模式,在該模式下使用方向鍵或者
h
,
j
k
l
鍵可以移動遊标。
按鍵 | 說明 |
---|---|
| 左 |
| 右(小寫L) |
| 下 |
| 上 |
| 移動到下一個單詞 |
| 移動到上一個單詞 |
請嘗試在普通模式下使用方向鍵移動光标到
shiyanlou
這幾個字母上面
4.插入模式
在普通模式下使用下面的鍵将進入插入模式,并可以從相應的位置開始輸入
指令 | |
---|---|
| 在目前光标處進行編輯 |
| 在行首插入 |
| 在行末插入 |
| 在光标後插入編輯 |
| 在目前行後插入一個新行 |
| 在目前行前插入一個新行 |
| 替換從光标所在位置後到一個單詞結尾的字元 |
請嘗試不同的從普通模式進入插入模式的方法,在最後一行shiyanlou前面加上
www.
,注意每次要先回到普通模式才能切換成以不同的方式進入插入模式
5.儲存文檔
指令行模式下儲存文檔:
儲存文檔從普通模式輸入
:
進入指令行模式,輸入
w
回車,儲存文檔。輸入
:w 檔案名
可以将文檔另存為其他檔案名或存到其它路徑下
6.退出vim
指令行模式下退出vim:
從普通模式輸入
:
wq
回車,儲存并退出編輯
以下為其它幾種退出方式:
| 強制退出,不儲存 |
| 退出 |
| 強制儲存并退出 |
| 另存為 |
| |
| 儲存并退出 |
|
2.普通模式下退出vim
普通模式下輸入
Shift+zz
即可儲存退出vim
7.删除文本
1.普通模式下删除vim文本資訊
進入普通模式,使用下列指令可以進行文本快速删除:
| 删除遊标所在的字元 |
| 删除遊标所在前一個字元 |
| 同 |
| 删除整行 |
| 删除一個單詞(不适用中文) |
或 | 删除至行尾 |
| 删除至行首 |
| 删除到文檔結尾處 |
| 删至文檔首部 |
除此之外,你還可以在指令之前加上數字,表示一次删除多行,如:
2dd
表示一次删除2行
實驗二.Vim文檔編輯
一、vim重複指令
1.重複執行上次指令
在普通模式下
.
(小數點)表示重複上一次的指令操作
拷貝測試檔案到本地目錄
$ cp /etc/protocols .
打開檔案進行編輯
$ vim protocols
x
,删除第一個字元,輸入
.
(小數點)會再次删除一個字元,除此之外也可以重複
dd
的删除操作
2.執行指定次數相同的指令
進入普通模式輸入
N<command>
,N表示重複後面的次數,下面來練習以下:
打開檔案檔案進行編輯
$ vim protocols
下面你可以依次進行如下操作練習:
- 輸入
,删除10個連續字元10x
-
,将會删除3行文本3dd
在普通模式下,你還可以使用
dw
daw
(delete a word)删除一個單詞,是以你可以很容易的聯想到
dnw
(n替換為相應數字)表示删除n個單詞
二、遊标的快速跳轉
普通模式下,下列指令可以讓光标快速調轉到指定位置,我們分别讨論快速實作行間跳轉和行内跳轉
1.行間跳轉
(n Shift+g) | 遊标移動到第 n 行(如果預設沒有顯示行号,請先進入指令模式,輸入 以顯示行号) |
| 遊标移動到到第一行 |
(Shift+g) | 到最後一行 |
還是來練習一下吧:
使用vim打開練習文檔
$ vim protocols
依次進行如下操作練習:
- 快速跳轉到第9行,然後将其該行删除
- 回到第一行,向下删除8行
- 跳轉到文檔末,然後删除該行
小技巧:你在完成依次跳轉後,可以使用
Ctrl+o
快速回到上一次(跳轉前)光标所在位置,這個技巧很實用,比如當你在寫代碼時,忽然想起有個bug,需要修改,這時候你跳過去改好了,隻需要按下
Ctrl+o
就可以回到你之前的位置。vim中會用很多類似的小技巧就等着你去發掘。
2.行内跳轉
普通模式下使用下列指令在行内按照單詞為機關進行跳轉
| 到下一個單詞的開頭 |
| 到下一個單詞的結尾 |
| 到前一個單詞的開頭 |
| 到前一個單詞的結尾 |
| 到行頭 |
| 到行尾 |
| 向後搜尋<字母>并跳轉到第一個比對的位置(非常實用) |
| 向前搜尋<字母>并跳轉到第一個比對的位置 |
| 向後搜尋<字母>并跳轉到第一個比對位置之前的一個字母(不常用) |
| 向前搜尋<字母>并跳轉到第一個比對位置之後的一個字母(不常用) |
三、複制粘貼和剪切
1.複制及粘貼文本
- 普通模式中使用
複制y
- 普通模式中,
複制遊标所在的整行(yy
表示複制3行)3yy
-
複制至行首,或y^
。不含光标所在處字元。y0
-
複制至行尾。含光所在處字元。y$
-
複制一個單詞。yw
-
複制兩個單詞。y2w
-
複制至文本末。yG
-
複制至文本開頭。y1G
- 普通模式中,
-
粘貼p
-
(小寫)代表粘貼至光标後(下)p
-
(大寫)代表粘貼至光标前(上)P
-
$ vim protocols
2.剪切及粘貼
前面講得
dd
删除指令就是剪切,你每次
dd
删除文檔内容後,便可以使用
p
來粘貼,這一點可以讓我們實作一個很爽快的功能——交換上下行:
ddp
,就這麼簡單,即實作了快速交換光标所在行與它下面的行
實驗三.查找替換
一、字元的替換及撤銷(Undo操作)
1.替換和撤銷(Undo)指令
替換和Undo指令都是針對普通模式下的操作
+<待替換字母> | 将遊标所在字母替換為指定字母 |
| 連續替換,直到按下 |
| 替換整行,即删除遊标所在行,并進入插入模式 |
| 替換一個單詞,即删除一個單詞,并進入插入模式 |
(大寫) | 替換遊标以後至行末 |
| 反轉遊标所在字母大小寫 |
{n} | 撤銷一次或n次操作 |
| 撤銷目前行的所有修改 |
| redo,即撤銷undo的操作 |
打開檔案進行編輯:
$ vim practice_2 # 輸入以下文本 www.shiyanlou.com
然後依次進行如下操作
-
,跳轉到11行11G
- 輸入fa跳轉到第一個
字元a
-
,并且輸入b,a字元被b字元替換(實用)r
-
替換字元,輸入新字元串,輸入完按ESC回到普通模式(實用)R
-
替換整行字元,輸入新字元串,輸入完按ESC回到普通模式cc
-
替換一個英文字(word),輸入完按ESC回到普通模式(實用)cw
-
,翻轉遊标所在字元的大小寫~
-
替換至行尾,即遊标所在處以後的字都會被替換,輸入完按ESC回到普通模式C
-
撤銷上一次的操作u
二、快速縮進
1.使用指令進行快速調整縮進操作
這一小節學習如何在vim中進行快速縮進,縮進操作均在普通模式下有效
$ vim protocols
-
,跳轉到15行15G
-
整行将向右縮進(使用,用于格式化代碼超爽)>>
-
整行向左回退<<
-
進入指令行模式下對:
值進行設定可以控制縮進和回退的字元數shiftwidth
2.shiftwidth指令
shiftwidth
指令是指上一節
>>
指令産生的縮進(可以簡寫成
sw
) 普通模式下輸入
:
shiftwidth
值進行設定可以控制縮進和回退的字元數 擷取目前的設定值
:set shiftwidth?
設定縮進為10個字元
:set shiftwidth=10
ESC
回到普通模式,再次嘗試
>>
看縮進量是否變化
3.調整文本位置
指令行模式下輸入
:ce
(center)指令使本行内容居中
:ce
:ri
(right)指令使本行文本靠右
:ri
指令行模式下輸入:
le
(left)指令使本行内容靠左
:le
三、查找
1.快速查找
/
然後鍵入需要查找的字元串 按回車後就會進行查找。
?
與
/
功能相同,隻不過
?
是向上而
/
是向下查找。 進入查找之後,輸入
n
N
可以繼續查找
n
表示繼續查找,
N
反向查找
2.快速查找練習
使用vim打開檔案進行編輯
$ vim protocols
-
查找字元串icmp/icmp
-
查找下一個icmpn
-
向上查找字元串tcp?tcp
-
查找上一個出現的tcpN
3.進階查找
-
尋找遊标所在處的單詞\*
-
同上,但\#
是向前(上)找,#則是向後(下)找\*
-
g\*
,但部分符合該單詞即可\*
-
g\#
\#
以上查找
n
N
的繼續查找指令依然可以用
實驗四.進階功能入門
一、多檔案編輯
1.使用vim編輯多個檔案
編輯多個檔案有兩種形式,一種是在進入vim前使用的參數就是多個檔案。另一種就是進入vim後再編輯其他的檔案。 同時建立兩個新檔案并編輯
$ vim 1.txt 2.txt
預設進入
1.txt
檔案的編輯界面
-
編輯2.txt檔案,可以加:n
即!
強制切換,之前一個檔案的輸入沒有儲存,僅僅切換到另一個檔案:n!
-
編輯1.txt檔案,可以加:N
!
強制切換,之前檔案内的輸入沒有儲存,僅僅是切換到另一個檔案:N!
2.進入vim後打開新檔案
-
打開新檔案3.txt:e 3.txt
-
回到前一個檔案:e#
-
可以列出以前編輯過的文檔:ls
-
(或者編号)可以直接進入檔案2.txt編輯:b 2.txt
-
(或者編号)可以删除以前編輯過的清單中的檔案項目:bd 2.txt
-
,新打開檔案4.txt,放棄正在編輯的檔案:e! 4.txt
-
顯示正在編輯的檔案名:f
-
,改變正在編輯的檔案名字為new.txt:f new.txt
3.恢複檔案
如果因為斷電等原因造成文檔沒有儲存,可以采用恢複方式,
vim -r
進入文檔後,輸入
:ewcover 1.txt
來恢複
$ vim -r 1.txt
二、可視模式
1.可視模式指令簡介
- 在普通模式下輸入
(小寫),進入字元選擇模式,就可以移動光标,光标走過的地方就會選取。再次按下v會後就會取消選取。v
-
(小寫),進入行選擇模式,按下V之後就會把整行選取,您可以上下移動光标選更多的行,同樣,再按一次Shift+v
就可以取消選取。Shift+v
- 在普通模式下輸入
(小寫),這是區域選擇模式,可以進行矩形區域選擇,再按一次Ctrl+v
取消選取。Ctrl+v
-
删除選取區域内容d
-
複制選取區域内容y
2.可視模式指令練習
拷貝練習檔案到目前目錄
$ cp /etc/protocols .
打開練習檔案
$ vim protocols
-
跳轉到第9行,輸入9G
(小寫V),進入可視模式進行行選擇,選中5行,按下Shift+v
縮進,将5行整體縮進一個>>
shiftwidth
-
(小寫v),進入可視模式進行矩形區域選擇,選中第一列字元然後Ctrl+v
删除整列x
三、視窗操作
1.視窗操作簡介
vim可以在一個界面裡打開多個視窗進行編輯,這些編輯視窗稱為vim的視窗。 打開方法有很多種,例如可以使用在指令行模式下輸入
:new
打開一個新的vim視窗,并進入視窗編輯一個新檔案(普通模式下輸入
Ctrl+w
也可以,但是
Ctrl+w
在chrome下會與chrome關閉标簽頁的快捷鍵沖突,是以使用該快捷鍵你可以在IE或其它浏覽器進行練習),除了
:new
指令,下述列舉的多種方法也可以在指令模式或普通模式下打開新的視窗:
-
打開新的橫向視窗來編輯1.txt:sp 1.txt
-
打開新的縱向視窗來編輯1.txt:vsp 2.txt
- 普通模式下
将目前視窗分割成兩個水準的視窗Ctrl-w s
-
将目前視窗分割成兩個垂直的視窗Ctrl-w v
-
即 :q 結束分割出來的視窗。如果在新視窗中有輸入需要使用強制符!即:q!Ctrl-w q
-
打開一個視窗并且隐藏之前的所有視窗Ctrl-w o
-
移至下面視窗Ctrl-w j
-
移至上面視窗Ctrl-w k
-
移至左邊視窗Ctrl-w h
-
移至右邊視窗Ctrl-w l
-
将目前視窗移至下面Ctrl-w J
-
将目前視窗移至上面Ctrl-w K
-
将目前視窗移至左邊Ctrl-w H
-
将目前視窗移至右邊Ctrl-w L
-
減小視窗的高度Ctrl-w -
-
增加視窗的高度Ctrl-w +
2.視窗操作練習
$ vim 1.txt
-
打開一個新的vim視窗:new
-
打開新的橫向視窗來編輯2.txt:sp 2.txt
-
打開新的橫向視窗來編輯3.txt:vsp 3.txt
- 如果使用非chrome浏覽器可以使用
進行視窗間的跳轉Ctrl+w
- 分别在不同視窗的指令行模式下輸入
退出多視窗編輯:q!
四、文檔加密
1.建立加密文檔
$ vim -x file1
輸入您的密碼 确認密碼 這樣在下一次打開時,vim就會要求你輸入密碼
五、在vim執行外部指令
在指令行模式中輸入
!
可以執行外部的shell指令
-
用于顯示目前目錄的内容:!ls
-
用于删除名為 FILENAME 的檔案:!rm FILENAME
-
可将目前 VIM 中正在編輯的檔案另存為 FILENAME 檔案:w FILENAME
六、幫助系統
1.vim中的檢視幫助
- 普通模式下按
打開F1
自己預設的幫助文檔vim
-
打開名為:h shiftwidth
的幫助檔案shiftwidth
-
顯示版本及參數:ver
七、功能設定
1.vim的功能設定
可以在編輯檔案的時候進行功能設定,如指令行模式下輸入
:set nu
(顯示行數),設定值退出vim後不會儲存。要永久儲存配置需要修改vim配置檔案。 vim的配置檔案
~/.vimrc
,可以打開檔案進行修改,不過務必小心不要影響vim正常使用
2.擷取目前的設定
-
:set
顯示所有修改過的配置:se
-
顯示所有的設定值:set all
-
顯示option的設定值:set option?
-
取消當期設定值:set nooption
3.set功能的說明
-
設定自動縮進:set autoindent(ai)
-
設定自動存檔,預設未打開:set autowrite(aw)
-
:set background=dark
,設定背景風格light
-
設定自動備份,預設未打開:set backup(bk)
-
設定C語言風格縮進: set cindent(cin)
Linux
實驗一.Linux基礎
1.環境介紹:LX終端,Gvim編輯器
使用GVim編輯器輸入實驗所需的代碼及檔案,使用LX終端(LXTerminal)運作所需指令進行操作
2.元知識(思考)&硬知識(重點)&軟知識(經驗)
3.Linux在#或$符後面去輸入指令,有的時候指令後面還會跟着
選項
(options)或
參數
(arguments)。即Linux中指令格式為:

選項
是調整指令執行行為的開關,
選項
不同決定了指令的顯示結果不同。
參數
是指指令的作用對象。
如ls指令,
ls
ls .
顯示是目前目錄的内容,這裡“.”就是參數,表示目前目錄,是預設的可以省略。我們可以用
ls -a .
顯示目前目錄中的所有内容,包括隐藏檔案和目錄。其中“-a” 就是選項,改變了顯示的内容
4.man指令
man
是manul的縮寫,我們可以通過man man來檢視
man
的幫助
幫助文檔包含:
man
有一個
-k
選項用起來非常好,這個選項讓你學習指令,程式設計時有了一個搜尋引擎,可以舉一反三。 我們通過一個例子來說明,比如資料結構中學過排序(sort),我不知道C語言中有沒有完成這個功能的函數,可以通過“man -k sort”來搜尋,因為是找C庫函數,我們關注帶3的,qsort好像是個好選項,如下圖
結合後面學習的grep 指令和管道,可以多關鍵字查找:
5.cheat指令
cheat 指令不是Linux自帶的
cheat指令是在GNU通用公共許可證下,為Linux指令行使用者發行的互動式備忘單應用程式。它提供顯示Linux指令使用案例,包括該指令所有的選項和簡短但尚可了解的功能。
使用cheat指令作弊是可以的。
6.其他核心指令
和查找相關的核心指令還有
find
locate
grep
whereis
which
,其中:
- find查找一個檔案在系統中的什麼位置,locate是神速版本的find(Windows下有個Everything工具和locate類似).
- grep 可以對檔案全文檢索,支援正規表達式,正規表達式也是一個重要的元知識。
- whereis,which告訴你使用的指令工具裝在什麼地方。
上面的指令包括man -k有一個共同特點就是基于“搜尋”
實驗二.Linux下C語言開發基礎
1.Vim
VIMTUTOR是個實踐教程,通過實踐30分鐘讓你對VIM編輯器入門,隻要在指令行中輸入vimtutor,然後跟着教程練習就可以了。如下圖:
程式員有幾個鍵提示一下:
- 大寫“K”可以用來查找函數的幫助資訊:檢視 man page,指令模式下,将光标放在函數名上,按"K"可以直接察看 man page。
- 幾個設定
:set nu 顯示行号
:set ai 自動縮行
:set ts=4 設定一個 TAB 鍵等于幾個空格
- 移動光标
[[ 轉到上一個位于第一列的"{"
]] 轉到下一個位于第一列的"{"
{ 轉到上一個空行
} 轉到下一個空行
gd 轉到目前光标所指的局部變量的定義
3.gcc
GCC編譯代碼的過程如下
我們可以把編譯過程分成四步,以編譯hello.c生成可執行檔案hello為例
- 預處理:gcc –E hello.c –o hello.i;gcc –E調用cpp
- 編 譯:gcc –S hello.i –o hello.s;gcc –S調用ccl
- 彙 編:gcc –c hello.s –o hello.o;gcc -c 調用as
- 鍊 接:gcc hello.o –o hello ;gcc -o 調用ld
編譯過程比較難記,我們簡化一下,前三步,GCC的參數連起來是“ESc”,相應輸入的檔案的字尾是“iso”,這樣記憶起來就容易多了。
4.gdb
建議使用CGDB,比GDB好用,熟悉VC的調試方式,可以使用DDD。 注意使用GCC編譯時要加“-g”參數。 參考gdb參考卡GDB最基本的指令有:
- gdb programm(啟動GDB)
- b 設斷點(要會設4種斷點:行斷點、函數斷點、條件斷點、臨時斷點)
- run 開始運作程式
- bt 列印函數調用堆棧
- p 檢視變量值
- c 從目前斷點繼續運作到下一個斷點
- n 單步運作
- s 單步運作
- quit 退出GDB
問題:GDB的n(next)指令讓GDB執行下一行,然後暫停。 s(step)指令的作用與此類似,隻是在函數調用時step指令會進入函數,那麼實際使用中應該優先選用哪個?為什麼?
其他幾個我認為應該掌握的調試指令有:
- display 跟蹤變量值的改變
- until 跳出循環
- finish 跳出函數
- help 幫助
Vi
- Linux下C語言程式設計環境概述
(1)編輯器
Linux中最常用的編輯器有vi和emacs
(2)編譯連結器
編譯:源代碼轉化生成可執行代碼的過程,包括詞法,文法,語義的分析,中間代碼的生成和優化,符号表的管理和出錯處理
Linux最常用的編譯器是gcc編譯器
(3)調試器 gdb
(4)項目管理器 make
- 編輯器vi
(1)模式
三種模式:指令行模式,插入模式,底行模式
指令行模式:最初進入的模式,可以上下移動光标進行“删除字元”或“整行删除”“複制”“粘貼”,但不能編輯文字
插入模式:可以文字編輯,Esc可回到指令行模式
底行模式:光标位于模式的底行,可以檔案儲存或退出,也可以設定編輯環境如尋找字元串,列出行号
(2)基本流程
進入vi,指令行下輸入“vi hello”進入指令行模式,光标位于螢幕上方
指令行輸入i進入插入模式,可輸入文字
插入模式中按Esc轉入指令行模式,底行中輸入“:wq”(存盤退出)進入底行模式
(看模式,注意螢幕最下方即可)
- 編輯器emacs
啟動:指令行輸入“emacs”或者從“程式設計”emacs打開
- 運作可執行程式之前,需要注冊動态庫的路徑名
(1)修改/etc/ld.so.conf檔案
(2)修改LD_LIBRARY_PATH環境變量
(3)将庫檔案直接複制到/lib或/usr/lib目錄下
- 靜态庫和動态庫的差別
靜态庫将需要的部分直接編譯入可執行檔案中,動态庫隻有當使用它的程式執行時才被連結使用
一個動态庫可以被多個程式使用故可稱為共享庫,靜态庫會整合到程式中是以程式執行時不用加載靜态庫
連結到動态庫會使使用者的程式輕便,易于更新但難以部署
- 優化選項:
通過“-On”控制優化代碼的生成:
-O1:線程調準和延遲退棧
-O2:還有處理指令排程
-O3:還包括循環展開和其他與處理器特性相關的優化工作
調試時不優化,最終發行時優化
- gdb
(1)gdb使用流程
-g:使編譯出的可執行代碼中包含調試資訊
啟動gdb進行調試:
gdb調試的是可執行檔案不是.c源代碼
檢視檔案:在gdb中鍵入“l”就可以檢視載入的檔案
設定斷點:在“b”後加上對應行号,運作到該行之前暫停
檢視斷點情況:info b
在斷點鍵入“bt”即可查到調用函數(堆棧)的情況
運作代碼:鍵入“r”預設從首行開始運作;r後加行号指定從該行開始運作
檢視變量值:鍵入“p”加變量值
單步運作:“n”或“s”(s會進入函數而n不會進入函數)
恢複程式運作:“c”
gdb基本指令
- b 設斷點(要會設4種斷點:行斷點、函數斷點、條件斷點、臨時斷點)
- run 開始運作程式
- bt 列印函數調用堆棧
- p 檢視變量值
- c 從目前斷點繼續運作到下一個斷點
- n 單步運作
- s 單步運作
- quit 退出GDB
修改運作參數相關指令:set 變量=設定值
基本調試指令:
display 跟蹤變量值的改變
until 跳出循環
finish 跳出函數
help 幫助
- make工程管理器:自動識别更新了的檔案代碼
make格式: make target
模式規則:規則中的相關檔案前必須用“%”标明