2019-2020-1 20175325 《信息安全系统设计基础》第1周学习总结
一、目录:
- 学习内容
- 代码调试中的问题和解决过程
- 感想
- PSP
二、学习内容:
- 计算机:硬件+系统软件
- 系统得硬件组成:
- 总线,携带信息字节并负责在各个部件传递
- I/O设备,系统与外部世界的联系通道
- 主存:临时存储设备,用来存放程序处理的数据
- 处理器:解释和执行村塾在主存中指令的引擎
- 编译器gcc:
- 命令格式:
gcc+选项+文件名
- 命令格式:
- 编译过程:
- 预处理:
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会进入普通模式
- 使用快捷键进行编辑,编辑方式为:
- 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。- 断点调试:
- Makefile文件的书写格式:
vim Makefile
- Makefile文件中添加清除命令(clean),如:
.DCT:clean
clean: 删除所有文件类型为.o的文件
- Makefile文件中添加清除命令(clean),如:
rm –rf *.o
编译和执行(make:编译, ./all:执行)
三、代码调试中的问题和解决过程
- 问题一:在做测试的时候,不会使用GDB设置断点
- 解决方案:在参考gdb常用断点调试总结,学习了(条件)断点的设置和保存,以及一些简单的GDB指令。
- 问题二:GDB调试问题出现有符号表被读取,请使用"file" 命令”
- 解决方案:在编译的时候,没有加-g的选项,导致没有产生调试符号。
四、感想:
在学习初期,由于大写的i(I),和小写的L(l)经常分不清楚,所以导致了很多编译错误,浪费了一些时间,多熟悉gcc相关的指令,便会避免出现这种问题,通过使用蓝魔云的视频学习,自己不太懂的知识点可以反复观看,但还是有一些知识点不太能掌握,还需巩固。
五、PSP:
目标 | 5000 | 25篇 | 400小时 |
第一周 | 63/63 | 1 | 7 |