zoukankan      html  css  js  c++  java
  • 2017-2018-1 20155226 《信息安全系统设计基础》第四周课堂实践

    2017-2018-1 20155226 《信息安全系统设计基础》第四周课堂实践

    课堂测试时由于忘记上次学习课本第一章和第七章时已经创建了一个main.c文件,没有新建文件夹做测试导致运行时出错,所以课下新建文件夹后重做了一遍。

    测试1-vi

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

    • 使用到的命令及相关说明

      • vi的使用不做过多阐释
      • gcc * .c -o a.out 编译之前生成的.c文件并生成a.out可执行文件。
      • ./a.out 运行程序。

    测试2-gcc测试

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

    • 使用到的命令

      • gcc -E .c -o .i 编译预处理
      • gcc -S .i -o .s 产生汇编代码
      • gcc -c .s -o .o 进行汇编
      • gcc * .o -o XXX 生成可执行文件

    测试3-gdb测试

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

    • 使用到的命令

      • gdb XXX 进入调试模式

      • gdb相关命令

      • set args 可指定运行时参数。(如:set args 10 20 30 40 50 )

      • show args 命令可以查看设置好的运行参数。

      • run (r) 启动程序。

      • pwd 显示当前的所在目录。

      • break 设置断点,可以简写为b

      • b X(整数) 设置断点,在源程序第X行

      • b func 设置断点,在func函数入口处

      • info b 查询所有断点

      • b X(整数) if i==X 设置条件断电,在for循环后一行设置。

    测试4-静态库的测试

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

    • 使用到的命令

      • ar rcs xxx.a xx1.o xx2.o

      • c:创建一个库。不管库是否存在,都将创建。

      • s:创建目标文件索引,这在创建较大的库时能加快时间。

      • gcc -static 静态编译可执行文件,避免使用动态库的方式。

    测试5-共享库

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

    • 使用到的命令
      gcc -shared -fpic -o XX.so XX1.c ... 得到动态库文件

    第二周测试6-Makefile

    1. 写出编译上面vi编辑代码的makefile,编译出来的目标文件为testmymath, 只用显式规则就可以.

    2. 提交Make过程截图,要全屏,包含自己的学号信息

    • 截图

    • 使用到的命令

      • vi makefile写makefile文本
        问题:每一行要加TAB
      • 保存后退出输入make
      • 输入./testmymath

    课后测试-实现myod

    1. 复习c文件处理内容
    2. 编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能
    3. main与其他分开,制作静态库和动态库
    4. 编写Makefile
    5. 提交测试代码和运行结果截图,要全屏,包含自己的学号信息

    做了忘记补进博客= =,已经改成系统调用版了。。

  • 相关阅读:
    Mysql学习总结(19)——Mysql无法创建外键的原因
    Java Web学习总结(21)——http协议响应状态码大全以及常用状态码
    Java Web学习总结(21)——http协议响应状态码大全以及常用状态码
    Tomcat学习总结(5)——Tomcat容器管理安全的几种验证方式
    Android学习总结(1)——好的 Android 开发习惯
    phabricator
    linux-kernel 学习计划
    【华为云技术分享】Linux内核编程环境 (1)
    7 分钟全面了解位运算
    【华为云技术分享】鲲鹏弹性云服务器GCC交叉编译环境搭建指南
  • 原文地址:https://www.cnblogs.com/20155226thy/p/7611858.html
Copyright © 2011-2022 走看看