20145205 《信息安全系统设计基础》第2周学习总结
教材学习内容总结
1.知识点:
1)gcc
编译文件的流程:源文件—预处理—编译—汇编—链接—可执行文件
2)在.c->.i的时候不会进行语法检查,在.i->.o的时候才会进行
下面是gcc常用选项
下面是gcc库选项
3)使用gdb进行调试:gcc –g XXX.c –o XXX
后,输入 gdb XXX
即可进行调试; l——查看源代码;break
行数——设置断点;info break
——查看断点信息;p 变量——打印变量值;bt
——查看堆栈;c
—继续执行;q
——退出;n
——不进入函数调试;s——进入函数调试;help [command]
可以进行命令查找;delete
[断点号]——删除所有断点;b 函数名——设置函数断点(函数不执行);b 行号或者函数 if 表达式 (条件断点)
下面是gdb工作环境相关命令
下面是gdb设置断点与恢复命令
下面是gdb中查看运行数据的相关命令
4)makefile
带来的好处就是——“自动化编译”,一但写好,只需要一个make
命令,整个工程完全编译,极大的提高了软件的开发效率。
5)一个Makefile
文件主要含有一系列的规则,每条规则包含一下内容:一个目标,即make最终需要创建的文件,如可执行文件和目标文件;目标也可以是要执行的动作,如clean
;一个或多个依赖文件的列表,通常是编译目标文件所需要的其他文件。之后的一系列命令,是make执行的动作,通常是把指定的相关文件编译成目标文件的编译命令,每个命令占一行,并以tab
开头(初学者务必注意:是tab
,而不是空格) 执行以上Makefil
后就会自动化编译
6)-C dir
读入指定目录下的makefile
下面是makefile中常见的自动变量 和环境变量
下面是makefile中常用的预定义变量
下面是make的命令行选项
代码调试中的问题和解决过程
本周在实验楼中敲书上的例子时,会出现没有定义main函数的错误报告,并没有解决该问题,起初以为是环境错误,但是编写自己写的简单C语言程序后可以运行
本周代码托管截图
在虚拟机上进行git时,参照了卢肖明同学所编写的博客,在此谢谢卢肖明同学给我的帮助,减少了我可能会走的弯路,然后再开始的时候git中没有合并文件,之后也解决了。
其他(感悟、思考等,可选)
本周在试验楼中进行了再linux环境下用终端进行c语言文件编译和调试,比起之前用软件编写有方便的地方也有麻烦的地方,要是进行一个大项目编写的话只用键盘的话效率会高一些,而且所有的命令都可以方向键调出,所以越往后会越便利,但是终端无法对于一个已有的程序直接复制过来进行编译运行,这是我感觉不便利的地方,而且在终端上编写的时候,在熟练后确实是可以提高效率,但是现在我还并发现如何去想上个学期那样进行代码托管。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 1/2 | 8/8 | |
第二周 | 49/49 | 1/3 | 10/18 |