2018-2019 20165203 《信息安全系统设计基础》第一周

2018-2019 20165203 《信息安全系统设计基础》第一周

一、实验内容及操作步骤

测试一

  1. 每个.c一个文件,每个.h一个文件,文件名中最好有自己的学号
  2. 用Vi输入图中代码,并用gcc编译通过
  3. 在Vi中使用K查找printf的帮助文档
  4. 提交vi编辑过程截图,要全屏,包含自己的学号信息

把代码推送到代码托管平台

步骤:

  • 输入命令vi *.cvi *.h,敲入代码即可,以下是输入完毕后的文件及文件夹目录:

,将光标移动到printf处,按大写的K,即可得到帮助文档,下面是帮助文档和运行图片

测试二

  1. gcc 进行预处理,编译,汇编,链接vi输入的代码
  2. 生成的可执行文件中要有自己的学号
  3. 提交预处理,编译,汇编,链接,运行过程截图,要全屏,包含自己的学号信息
    代码推送到代码托管平台

步骤:

  • 输入预处理命令:gcc -E -I include src/*.c -o bin/*.i

  • 输入编译指令:gcc -S -I include bin/ *.i -o bin/ *.s

  • 输入汇编指令:gcc -c -I include bin/ *.s -o bin/ *.o

  • 输入链接指令:(在bin文件夹下运行)
    cd bin
    gcc * .o -o test

测试三

  1. 用gcc -g编译vi输入的代码
  2. 在main函数中设置一个行断点
  3. 在main函数增加一个空循环,循环次数为自己学号后4位,设置一个约为学号一半的条件断点
  4. 提交调试过程截图(一定包含条件断点的),要全屏,包含自己的学号信息

操作步骤:

  • gcc -g来使源代码生成一个可执行文件,用gdb+文件名来进行调试,并设置断点为第9行。

  • 输入r进行调试

  • 设置相应断点及相应的值

测试四

  1. 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a?
  2. 提交静态库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息

操作步骤:

  • 输入gcc -g -c -I +相应位置下的文件,来将.c文件变成.o文件
  • 加上static参数生成mymath.a静态库文件
  • 输入arv rcvs 静态库文件名 .o文件,将.o文件放入静态库
  • 加上-o,生成一个可执行文件test

测试五

  1. 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?
  2. 提交共享库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息

操作步骤:

  • 加上-shared -fpic参数,生成共享库文件mymath.so
  • 调试过程,同gdb调试

测试六

1.写出编译上面vi编辑代码的makefile,编译出来的目标文件为testmymath, 只用显式规则就可以.
2.提交Make过程截图,要全屏,包含自己的学号信息

操作步骤:

  • 输入vim Makefile, 输入内容
  • 在终端输入make
  • 运行生成的目标文件

二、遇到的问题

Q:自己的虚拟机vim编辑器中Backspace键及方向键无法使用

A:自己查找得知,自己安装的编辑器版本不是最新版本,输入sudo apt-get remove vim-common
sudo apt-get install vim
以安装最新的vim编辑器

三、实验体会

本次测试是第一次测试,有了大二下自学的经验,学起来还得心应手一些,当然这之中也少不了小伙伴们的帮助,自己也从中学到了很多东西,希望这学期好好努力,取得好成绩吧。

原文地址:https://www.cnblogs.com/20165203-xyx/p/9693869.html