2019-2020-1 20175325 《信息安全系统设计基础》第1周学习总结

Posted sgm5

tags:

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

2019-2020-1 20175325 《信息安全系统设计基础》第1周学习总结

一、目录:

  • 学习内容
  • 代码调试中的问题和解决过程
  • 感想
  • PSP

二、学习内容:

  • 计算机:硬件+系统软件
  • 系统得硬件组成:
    • 总线,携带信息字节并负责在各个部件传递
    • I/O设备,系统与外部世界的联系通道
    • 主存:临时存储设备,用来存放程序处理的数据
    • 处理器:解释和执行村塾在主存中指令的引擎
  • 编译器gcc:
    • 命令格式: gcc+选项+文件名

-E:仅执行编译预处理
-S:将C代码转换成汇编代码
-c:仅执行编译操作,不进行链接
-o:指定生成输出文件
-I:指定头文件目录
-l:指定程序需链接的库
-L:指定库文件所在的目录名

  • 编译过程:
    • 预处理:gcc -E hello.c -o hello.i
    • 汇编:gcc -S hello.i -o hello.s
    • 汇编:gcc -c hello.s -o hello.o
      注意:vim查看hello.o时会出现乱码,常用objdump -d hello.o
    • 链接:gcc hello.o -o hello
  • 编译
    • 将源文件一起编译:gcc test_a.c text_b.c -o test / gcc *.c -o test
    • 各个源文件分别编译再进行链接:
      gcc -c test_a.c
      gcc -c test_b.c
      gcc -o test_a.o test_b.o -o test
  • 有关vim:
    • 打开方式:vim [文件名]
    • 按i会进入insert模式,可以对代码进行编辑
    • 按Esc会进入普通模式
    • 使用快捷键进行编辑,编辑方式为:

h 向左移动光标
l 向右移动光标
j 向下移动光标
k 向上移动光标
w 移动到下一个单词

  • vim的退出与保存
    • 保存并退出::wq+回车键Esc+Shift+zz
    • 不保存并退出: Esc+q!
  • GDB基本命令
    • gdb programm(启动GDB)
    • b 设断点:要会设4种断点:行断点、函数断点、条件断点、临时断点
    • run 开始运行程序
    • bt 打印函数调用堆栈
    • p 查看变量值
    • c 从当前断点继续运行到下一个断点
    • n 单步运行
    • s 单步运行
    • quit 退出GDB
    • 大写“K”可以用来查找函数的帮助信息:查看 man page,命令模式下,将光标放在函数名上,按"K"可以直接察看 man page。
    • 断点调试:

break x (x表示设置断点位置的行号)
delete x (x表示删除断点的行号)
list 显示带行数的代码
start+cotinue=run 运行
s+c=r
watch b 观察变量b的值,变化时程序停止
s 进入函数内部
n 单步调试
quit 退出gdb
info b 查看断点信息并保存
save breakpoint fig.dp 保存断点到fig.dp中
gdb hello2 -x fig.dp调试时读取保存断点文件

  • Makefile文件的书写格式:vim Makefile
    • Makefile文件中添加清除命令(clean),如:.DCT:clean   
        clean: 删除所有文件类型为.o的文件
  • rm –rf *.o 编译和执行(make:编译, ./all:执行)

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

  • 问题一:在做测试的时候,不会使用GDB设置断点
    • 解决方案:在参考gdb常用断点调试总结,学习了(条件)断点的设置和保存,以及一些简单的GDB指令。
  • 问题二:GDB调试问题出现有符号表被读取,请使用"file" 命令”
    • 解决方案:在编译的时候,没有加-g的选项,导致没有产生调试符号。

四、感想:
在学习初期,由于大写的i(I),和小写的L(l)经常分不清楚,所以导致了很多编译错误,浪费了一些时间,多熟悉gcc相关的指令,便会避免出现这种问题,通过使用蓝魔云的视频学习,自己不太懂的知识点可以反复观看,但还是有一些知识点不太能掌握,还需巩固。

五、PSP:

------ 代码行数 博客量 学习时间
目标 5000 25篇 400小时
第一周 63/63 1 7

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

2019-2020-2 20175224 20175236 20175325 实验二 固件程序设计

20175325 实现mypwd(选做,加分)

20175325 《JAVA程序设计》实验二《JAVA开发环境的熟悉》实验报告

20175325 《JAVA程序设计》实验三《敏捷开发与XP实践》实验报告

20175325 第二周结对编程项目 四则运算

20175325 第一周结对编程项目 四则运算