zoukankan      html  css  js  c++  java
  • 2018-2019 20165235 《信息安全系统设计基础》第一周

    测试1-vi

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

      这是vi中的printf帮助文档,首先cd src/main.c 通过hjkl键将光标移动到printf上去,按大写的K即可:

      这是编译.c文件以及运行结果:

    测试2-gcc测试

    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

      链接:cd bin gcc *.o -o test

    使用到的命令

    1.gcc -E .c -o .i 编译预处理
    2.gcc -S .i -o .s 产生汇编代码
    3.gcc -c .s -o .o 进行汇编
    4.gcc * .o -o XXX 生成可执行文件
    5.ls 显示文件列表

    测试3-gdb测试

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


      输入r开始调试:

      设置条件断点:

    gdb相关命令

    1.set args 可指定运行时参数。(如:set args 10 20 30 40 50 )
    2.show args 命令可以查看设置好的运行参数。
    3.run (r) 启动程序。
    4.pwd 显示当前的所在目录。
    5.break 设置断点,可以简写为b
    6.b X(整数) 设置断点,在源程序第X行
    7.b func 设置断点,在func函数入口处
    8.info b 查询所有断点
    9.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. 提交静态库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
      加上-g将.c文件编译成.o文件,输入图上指令生成一个mymath.a的静态库文件,然后用mymath.a文件生成一个可执行文件test

      对可执行文件的调试:

    测试5-共享库

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

      对可执行文件的调试:

    测试6-Makefile

    1 写出编译上面vi编辑代码的makefile,编译出来的目标文件为testmymath, 只用显式规则就可以.
    2 提交Make过程截图,要全屏,包含自己的学号信息
    首先 vim Makefile:(第二行开头使用Tab键)

    然后在shell中输入make

    运行生成的目标文件:

    在编辑makefile文本时需注意:一个Makefile文件主要含有一系列的规则,每条规则包含一下内容:一个目标,即make最终需要创建的文件,如可执行文件和目标文件;目标也可以是要执行的动作,如‘clean’;一个或多个依赖文件的列表,通常是编译目标文件所需要的其他文件。之后的一系列命令,是make执行的动作,通常是把指定的相关文件编译成目标文件的编译命令,每个命令占一行,并以tab开头。

  • 相关阅读:
    OLAP ODS项目的总结 平台选型,架构确定
    ORACLE ORA12520
    ORACLE管道函数
    ORACLE RAC JDBC 配置
    ORACLE RAC OCFS连接产生的错误
    ORACLE 启动和关闭详解
    OLAP ODS项目的总结 起步阶段
    ORACLE RAC 配置更改IP
    ORACLE RAC OCR cann't Access
    ORACLE RAC Debug 之路 CRS0184错误与CRS初始化
  • 原文地址:https://www.cnblogs.com/qy20165235/p/9693021.html
Copyright © 2011-2022 走看看