2017-2018-1 20155229 《信息安全系统设计基础》第五周学习总结
2017-2018-1 20155229 《信息安全系统设计基础》第五周学习总结
教材学习内容总结
教材学习中的问题和解决过程
-
问题1:call ret 命令的作用与使用
-
问题1解决方案:
对于代码
#include <stdio.h>
int main()
{
printf("hello, world\n");
return 0;
}
中只调用了一个库函数printf()
代码调试中的问题和解决过程
- 问题1:在对实验代码(下图)
使用 gcc -g gdbdemo.c -o gdbdemo -m32
命令在64位的机器上产生32位汇编代码时,产生了错误(找不到截图了)
- 问题1解决方案:使用
sudo apt-get install libc6-dev-i386
命令安装一个库,问题就得到解决了
- 问题2:使用gdb对上述代码进行调试
设置完断点后,运行
使用disaaemble
获取汇编代码,i r
用来查看各寄存器的值
si
是用来单步跟踪一条机器指令,然后继续使用i r查看寄存器的值,明显发现,两次eap
的值不同
代码托管
(statistics.sh脚本的运行结果截图)
感觉这周的代码统计有bug,因为我上周统计时的总代码为185,这周敲的代码为130,但总代码才为195
上周考试错题总结
- 错题1:
main.c 调用了静态库libmath.a中的函数,编译main.c的命令是()
A .gcc -static main.c ./libmath.a -o main
B .gcc -static main.c -L. -lmath -o main
C .gcc -static main.c -L. -llibmath.a -o main
D .gcc -static main.o ./libmath.a -o main
-
正确答案:A、B
-
错题2:
dll,so文件的链接是运行在()
A .编译时
B .加载时
C .运行时
D .链接时
-
正确答案:C
结对及互评
点评模板:
-
博客中值得学习的或问题:
- 代码中值得学习的或问题:
- xxx
本周结对学习情况
- [20155225](博客链接)
- 结对照片
- 结对学习内容
- 学习教材第三章内容
- 回顾课堂上的知识 并总结
- 回顾周二实验的内容,写实验报告
其他(感悟、思考等,可选)
本周学习的是第三章的内容——程序的机器级表示,内容较于上一章,还是很多的,而且涉及到了汇编语言的表示。因为汇编的大多知识点都忘记了,所以在学习这一章时还回顾了上学期汇编的一些知识,但是c语言与汇编的相结合对于我来说可能还有些困难,这就需要接下来的时间对本章内容加深学习。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 15篇 | 400小时 | |
第一周 | 20/20 | 1/ | 12/12 | |
第二周 | 42/62 | 1/2 | 8/20 | |
第三周 | 62/124 | 1/3 | 14/34 | |
第四周 | 61/185 | 1/4 | 10/44 | |
第五周 | / | 2/6 | 13/57 |
(代码统计有bug,先不进行统计,详情见上面代码截图部分)
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:15小时
-
实际学习时间:13小时
-
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)