• 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编辑器

    三、实验体会

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

  • 相关阅读:
    leetcode刷题笔记五十八 最后一个单词的长度
    leetcode刷题笔记五十六和五十七 合并区间与插入区间
    linux根据端口号,或进程名获取进程pid
    linux系统简单配置——centos7
    日常知识点记录
    实用代码-获取某一个对象中的信息
    java获取svn中的数据
    idea快捷键整理,以及eclipse快捷键对比,持续更新中
    ajax发送同步请求
    基于 pygame 设计贪吃蛇游戏
  • 原文地址:https://www.cnblogs.com/20165203-xyx/p/9693869.html
Copyright © 2020-2023  润新知