【Linux】实验报告3 vi、gcc 和 gdb 的使用 | 您所在的位置:网站首页 › 开发环境和编译器的关系 › 【Linux】实验报告3 vi、gcc 和 gdb 的使用 |
实验三 编辑器 vi 、编译器 gcc 和调试器 gdb 的使用
文章目录
实验三 编辑器 vi 、编译器 gcc 和调试器 gdb 的使用实验目的实验原理1. vi和vim简介1.1 vi1.2 vim
2. vi的三种工作模式2.1 **命令模式**2.2 **末行模式**2.3 **编辑模式**
3. vi的基本操作3.1 vi打开/新建文件vi [file]vi [file] +[line]
3.2 vi光标移动1) 上、下、左、右2) 行内移动3) 行数移动
3.3 vi整行操作1) 删除整行2) 复制整行与粘贴3) 撤销和恢复撤销
3.4 vi末行搜索3.5 vi行号显示与语法高亮3.6 vi的异常退出
4. indent缩进排版程序indent程序的安装indent [file.c]
5. gcc编译器5.1 gcc简介5.2 gcc安装(以Ubuntu为例)5.3 gcc下的编译过程gcc -E [file.c] -o [name.i]gcc -S [file.c] -o [name.s]gcc [file.c]gcc [file.c] -o [name]
6. gdb调试器5.1 gdb简介5.2 gdb常用命令5.3 gdb基础调试过程
实验作业
实验目的
掌握编辑器 vi的基本操作,能够使用 vi 来编辑 C 语言源程序;学习indent缩进排版程序的使用;掌握用 gcc 进行编译;掌握用gdb进行调试 实验原理 1. vi和vim简介Vi的使用相关博文 1.1 vivi 是 Visual interface 的简称,是 Linux 中 最经典 的文本编辑器 vi 的核心设计思想 —— 让程序员的手指始终保持在键盘的核心区域,就能完成所有的编辑操作 vi的特点: 不是图形界面 只能编辑 文本内容,不能对字体、段落进行排版 不支持鼠标操作 没有菜单 只有命令 1.2 vim vim 是从 vi 发展出来的一个文本编辑器,支持 代码补全、编译 及 错误跳转 等方便编程的功能特别丰富,在程序员中被广泛使用,被称为 编辑器之神 2. vi的三种工作模式 2.1 命令模式 敲击键盘上的 ESC 进入打开文件首先进入命令模式,是使用 vi 的 入口通过 命令 对文件进行常规的编辑操作,例如:定位、翻页、复制、粘贴、删除……在其他图形编辑器下,通过 快捷键 或者 鼠标 实现的操作,都在 命令模式 下实现 2.2 末行模式 敲击键盘上的 : 进入要退出 vi 返回到控制台,需要在末行模式下输入命令末行模式 是 vi 的 出口 命令英文功能wwrite保存qquit退出,如果没有保存,不允许退出q!quit强行退出,不保存退出wqwrite & quit保存并退出 2.3 编辑模式 敲击键盘上的 **i **进入正常的编辑文字 3. vi的基本操作 3.1 vi打开/新建文件 vi [file] vi test.c #若test.c存在,则打开test.c文件 vi new.c #若new.c不存在,则新建new.c文件 vi [file] +[line] vi test.c +3 #打开test.c文件,并且定位至第3行PS:如果只带上 + 而不指定行号,会直接定位到文件末尾 3.2 vi光标移动 1) 上、下、左、右 命令功能手指h向左食指j向下食指k向上中指l向右无名指 2) 行内移动 命令功能w向后移动一个单词b向前移动一个单词0行首^行首,第一个不是空白字符的位置$行尾 3) 行数移动 命令功能gg文件顶部G文件末尾[line]gg行首,第一个不是空白字符的位置[line]G行首,第一个不是空白字符的位置:数字行首,第一个不是不是空白字符的位置 3.3 vi整行操作 1) 删除整行 命令功能dd删除当前光标所在的整行[num]dd删除当前光标开始的n整行 2) 复制整行与粘贴 命令功能yy复制当前光标所在的整行[num]yy复制当前光标开始的n整行p将复制内容粘贴光标的后面P将复制内容粘贴至当前光标前 3) 撤销和恢复撤销 命令英文功能uundo撤销上次命令CTRL + rredo恢复撤销的命令 3.4 vi末行搜索 命令功能/[string]+Enter搜索当前string,光标跳转至第一个string出现位置n光标跳转至下一个string出现位置shift+n光标跳转至上一个string出现位置 3.5 vi行号显示与语法高亮 命令功能set nu添加行号显示set nonu取消行号显示syntax enable on显示语法高亮syntax off取消语法高亮 3.6 vi的异常退出假设使用vi编辑hello.c时,出现异常退出 系统会自动生成**.swp**隐藏文件 再次使用vi进入hello.c时,会出现如下提示 按D键后,之前的编辑未生效,.swp文件也被删除 4. indent缩进排版程序 indent程序的安装 sudo apt install indent #安装indent程序 indent [file.c] indent test.c #对test.c程序进行缩进排版 5. gcc编译器 5.1 gcc简介GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言译器。GNU编译器套件包括C、C++、Objective-C、Java前端,也包括了这些语言的库,如libstdc++,libgcj等。 5.2 gcc安装(以Ubuntu为例)查看当前 cd /usr/bin #查看当前Linux系统是否安装了gcc编译器 find gcc未安装,执行下行命令 sudo apt-get install build-essential #Ubuntu安装gcc已安装,查看当前gcc版本 gcc -v #查看当前gcc版本 5.3 gcc下的编译过程 gcc -E [file.c] -o [name.i] gcc -E test.c -o test.i #预处理test.c,生成test.i文件 vim test.i #查看生成的汇编文件 gcc -S [file.c] -o [name.s] gcc -S test.c -o test.s #编译test.c,生成test.s汇编文件 vim test.s #查看生成的汇编文件 gcc [file.c] gcc test.c #编译test.c,默认生成文件名为a.out的可执行文件 ./a.out #执行生成的a.out文件(./代表当前目录) gcc [file.c] -o [name] gcc test.c -o test.out #编译test.c,生成文件名为test.out的可执行文件 ./test.out #执行生成的test.out文件(./代表当前目录) 6. gdb调试器 5.1 gdb简介GDB(the GNU Project Debugger)是 GNU开源组织发布的一个强大的Linux下的程序调试工具,可以调试 C、C++、Objective-C 和 Pascal 等多种语言的程序 5.2 gdb常用命令 命令示例功能filefile [name]装入想要调试的可执行文件breakbreak [line]设置断点deletedelete [line]清除单行的单个断点clearclear [line]清除单行的所有断点disabledisable [num]设置序号为num的断点暂时失效enableenable [num]设置序号为num的断点重新生效runrun运行调试程序listlist [line1],[line2]查看line1-line2的源代码nextnext执行一行源代码但不进入函数内部stepstep执行一行源代码而且进入函数内部infoinfo [command]显示相关命令当前信息killkill结束当前调试printprint [var]在屏幕上打印var变量的值quitquit退出gdb调试程序 5.3 gdb基础调试过程编译文件,进入gdb调试器 使用list命令显示当前文件源代码 设置断点,显示断点信息 运行程序至断点1 单步调试运行 6. 结束当前调试 退出gdb调试程序 实验作业用 vi 编辑器写一段 C 语言的程序,并对这个程序的格式进行整理,对程序进行编译,最后运行这个程序。写出你的程序和实现以上操作的全部的指令。 touch test.c #创建test.c文件 vi test.c #使用vi编辑器修改test.c文件的内容 indent test.c #使用indent程序对test.c文件内容缩进排版 gcc test.c -o test.out #使用gcc对test.c编译 ./test.out |
CopyRight 2018-2019 实验室设备网 版权所有 |