20175221 《信息安全系统设计基础》第3周学习总结

Posted zxja

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20175221 《信息安全系统设计基础》第3周学习总结相关的知识,希望对你有一定的参考价值。

教材学习内容总结

一、熟悉Linux系统下的开发环境

二、熟悉vi的基本操作

三、熟悉gcc编译器的基本原理

四、熟练使用gcc编译器的常用选项

gcc使用命令:

技术图片

实验楼练习:

技术图片

  1. 每个.c一个文件,每个.h一个文件,文件名中最好有自己的学号
  2. 用Vi输入图中代码,并用gcc编译通过
  3. 在Vi中使用K查找printf的帮助文档
  • 首先用 vim 编辑代码
  • 技术图片
  • 使用 gcc 编辑命令将文件依次处理为: .c → .i → .s → .o → 可执行文件 ,然后运行:
  • 技术图片

五、熟练使用gdb调试技术

  • gdb使用命令:
  • 技术图片

六、熟悉makefile基本原理及语法规范 

七、掌握静态库和动态库的生成与调用方法

将 add.c sub.c div.c mul.c 放到一个文件夹下,用 gcc-c 预处理后, ar rcvs 制作静态库

技术图片

八、理解C程序中模块的概仿,模块分解的“高内聚,低耦合”的原则

九、了解链接的概念

教材学习中的问题和解决过程

  • 问题1:教材中有提到:GDB的n(next)命令让GDB执行下一行,然后暂停。 s(step)命令的作用与此类似,只是在函数调用时step命令会进入函数,那么实际使用中应该优先选用哪个?
  • 问题1解决方案:经过类比以前C和Java的学习得知,应优先使用next。step 就是单步执行,遇到子函数就进入并且继续单步执行;在其他调试其中相当于step-into命令,作用是移动到下一个可执行的代码行。如果当前行是一个函数调用,则调试器进入函数并停止在函数体的第一行。step可以帮助初步揭开代码位置的谜团,例如:函数调用和函数本身可能在不同的文件中。next 是在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。在其他调试器中相当于step-over,作用是在同一个调用栈层中移动到下一个可执行的代码行。调试器不会进入函数体。如果当前行是函数的最后一行,则,next将进入下一个栈层,并在调用函数的下一行停止

代码调试中的问题和解决过程

  • 问题1:无法使用 gcc 命令

  • 问题1解决方案:

  • 在尝试 sudo apt install gcc 无果后, sudo apt-get update , sudo apt install gcc 重新进行了下载
  • 技术图片
  • 技术图片
  • 问题2:找不到头文件

  • 问题2解决方案:PPT里边将head.h放在另外创建的include文件夹中,导致直接编译时无法找到,我们在src中复制一份即可。

  • 技术图片

  • 问题3:预处理→汇编时报错
  • 问题3解决方案:这里由于编辑代码时将div编成了mul,导致出错。回到div.c改正后再处理即可
  • 技术图片
  • 代码托管

 

上周考试错题总结

其他(感悟、思考等,可选)

xxx xxx

学习进度条

 代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标 5000行 30篇 400小时  
第一周 53/53 1/1 20/20  

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。 耗时估计的公式 :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:XX小时

  • 实际学习时间:XX小时

  • 改进情况:

(有空多看看现代软件工程 课件 软件工程师能力自我评价表)

参考资料

以上是关于20175221 《信息安全系统设计基础》第3周学习总结的主要内容,如果未能解决你的问题,请参考以下文章

2018-2019 20165227《信息安全系统设计基础》第三周学习总结

20145301 《信息安全系统设计基础》第3周学习总结

2019-2020-2 20175221『网络对抗技术』Exp9:Web安全基础

20145331 《信息安全系统设计基础》第3周学习总结

《信息安全系统设计基础》第3周学习总结

20155236 《信息安全系统设计基础》课程总结