github wordpress主題seo關(guān)鍵詞優(yōu)化軟件手機(jī)
提示:文章寫(xiě)完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔
文章目錄
- 一、vim
- vim安裝
- vim常用快捷鍵
- vim使用
- vimtutor zh文檔
- 二、gcc編譯器
- 安裝gcc工具
- 編譯源代碼
- 三、gdb調(diào)試器
- gdb安裝
- gdb常用指令
- gdb簡(jiǎn)單上手使用
- gdb的單步調(diào)試功能
- 總結(jié)
一、vim
vim是vi發(fā)展出來(lái)的一個(gè)文本編輯器,具有代碼補(bǔ)全、快速跳轉(zhuǎn)、查找等功能,在linux中被廣泛使用。
vim官方網(wǎng)站(https://www.vim.org/)
vim安裝
sudo apt-get install vim
vim常用快捷鍵
vim xxx 進(jìn)入(正常模式)
i、a、o鍵 (輸入模式)
esc(回到正常模式)
:鍵 (命令模式)
:wq (保存、退出)
Nodepad可以使用CTRL+F實(shí)現(xiàn)查找、替換功能
vim使用
創(chuàng)建工作空間目錄workspace/src
在終端中打開(kāi)上述工作空間目錄;
創(chuàng)建.c源碼文件vim test.c
按鍵i 進(jìn)行編輯
#include <stdio.h>int main(void)
{
printf("hello world");return 0;
}
ESC 回到正常模式
:wq 保存、退出
vimtutor zh文檔
輸入vimtutor zh查看中文文檔
里面有詳細(xì)的vim教學(xué),在練習(xí)中記憶并熟練掌握常用操作;
二、gcc編譯器
gcc(GNU Compiler Collection)是GNU(GNU’s Not Unix)開(kāi)源項(xiàng)目的編譯器套件。gcc的初衷是為GNU操作系統(tǒng)專門(mén)編寫(xiě)的一款編譯器,用于編譯C代碼?,F(xiàn)如今已經(jīng)拓展為可以編譯C++、Java、Objective-C等多種編程語(yǔ)言的集合。gcc本身也遵循GPL發(fā)行許可證,linux就是基于gcc搭建的編譯系統(tǒng)。
gcc官方網(wǎng)站可以參考https://gcc.gnu.org/
安裝gcc工具
sudo apt-get install build-essential
查看是否安裝成功
gcc -v
編譯源代碼
使用vim打開(kāi)前文的test.c文件
vim test.c
gcc -o bin test.c
查看文件列表
ls -la
運(yùn)行可執(zhí)行文件
./bin
如果想知道調(diào)試信息,可以加上-g的參數(shù)
gcc -o bin test.c -g
對(duì)比不加-g參數(shù)時(shí)文件的大小
gcc -o bin test.c
ls -lh
加入-g參數(shù),文件占據(jù)的存儲(chǔ)空間會(huì)變大
gcc -o bin test.c -g
ls -la
生成匯編
gcc -o bin test.c -s
生成.o文件
gcc -o bin test.c -c
加入定義的宏
gcc -o bin test.c -D
三、gdb調(diào)試器
gdb是GNU Project Debugger的簡(jiǎn)稱,也是是GNU(GNU’s Not Unix)開(kāi)源項(xiàng)目中遵循GPL發(fā)行許可證的free software,
gbd官方網(wǎng)站 https://sourceware.org/gdb/
一般來(lái)說(shuō)GDB主要能提供以下四個(gè)方面的幫助:
1.start your program,specifying anything that might affect its behavior指定一些參數(shù)
2.make your program stop on specified condition 斷電
3.examine what has happened,when your program has stopped分析crash現(xiàn)場(chǎng)
4.change things in your program,so you can experiment with correcting the effects of one bug and go on to learn about another 直接修改程序,查看結(jié)果
What Languages does GDB Support? (gdb支持的語(yǔ)言)
GDB supports the following languages (in alphabetical order):
Ada
Assembly
C
C++
D
Fortran
Go
Objective-C
OpenCL
Modula-2
Pascal
Rust
gdb安裝
sudo apt-get install gdb
查看gdb版本
gdb --version
gdb常用指令
通過(guò)gdb調(diào)試正在運(yùn)行的程序:
ps -A (查看進(jìn)程列表)
gdb -p 進(jìn)程號(hào)
程序掛掉后調(diào)試:
gdb xxx core
gdb簡(jiǎn)單上手使用
工作空間目錄workspace/src
cd /home/workspace/src
vim test.cd
編譯(-g參數(shù)是為了輸出調(diào)試信息)
gcc -o bin test.c -g
調(diào)試可執(zhí)行文件:
gdb ./bin
按q可退出gdb調(diào)試界面
去掉gdb調(diào)試界面的版本等信息(便于觀察調(diào)試界面):
gdb ./bin -q
在gdb運(yùn)行界面輸入run即可運(yùn)行程序;
查看對(duì)應(yīng)行號(hào)的代碼:
在gdb運(yùn)行界面輸入list 代碼的行號(hào)
這里再vim文本編輯界面顯示行號(hào): 輸入:set nu 回車即可顯示代碼行號(hào)
清空gdb的歷史輸出信息窗口
!clear
gdb的單步調(diào)試功能
設(shè)置斷點(diǎn):在gdb輸入break 代碼的行號(hào),比如break 8;
輸入run(或者r),代碼會(huì)停止在設(shè)定的斷點(diǎn)位置;
在gbd界面單步執(zhí)行:next 回車;
在gbd界面繼續(xù)執(zhí)行:c 回車,即continue;
在gbd界面查看變量信息:gdb界面輸入print 變量名稱
!clear
在gbd界面修改變量的值:
run
set var 變量名稱=新的數(shù)值
清除斷點(diǎn)
info break (展示斷點(diǎn)信息)
delete 斷點(diǎn)序號(hào),例如delete 1
通過(guò)訪問(wèn)地址的形式打印變量
例如:正在運(yùn)行的源碼程序中b=20
gdb中輸入print &b,得到一個(gè)地址,
gdb中輸入x 地址,即可得到變量的值(以十六進(jìn)制數(shù)展現(xiàn))
gdb x /d 地址(以十進(jìn)制展現(xiàn))
查看當(dāng)前寄存器的值:
info register
查看當(dāng)前進(jìn)程的信息:
info thread
切換到對(duì)應(yīng)的進(jìn)程
thread 進(jìn)程號(hào),比如thread 1
將C語(yǔ)言切換成匯編語(yǔ)言
disass
總結(jié)
簡(jiǎn)單講解了vim、gcc編譯器、gdb調(diào)試器的使用。