您的位置:首页 > 其它

20145325张梓靖 《信息安全系统设计基础》第2周学习总结

2016-09-25 22:40 525 查看

20145325张梓靖 《信息安全系统设计基础》第2周学习总结

教材学习内容总结

vim :set nu 显示行号;:set ai 自动缩行;:set ts=4 设置一个 TAB 键等于几个空格

移动光标: [[ 转到上一个位于第一列的"{";]] 转到下一个位于第一列的"{";{ 转到上一个空行;} 转到下一个空行;gd 转到当前光标所指的局部变量的定义

光标前面插入(i),光标后面添加(a)

gcc 注意使用GCC编译时要加“-g”参数。

gdb

b
设断点(要会设4种断点:行断点、函数断点、条件断点、临时断点)

run
开始运行程序

bt
打印函数调用堆栈

p
查看变量值

c
从当前断点继续运行到下一个断点

n
单步运行

s
单步运行

quit
退出GDB

静态库、动态库

静态链接库的生成:
ar rcsv libxxx.a xxx.o


静态库的使用:
gcc -o main main.c -L. -lxxx
注意-L -l 的含义

共享库的生成
gcc -fPIC -c xxx.c


gcc -shared -o libxxx.so xxx.o


共享库的使用:
gcc -o main main.c -L. -lxxx


makefile

格式:
目标文件:依赖文件  (Tab或;)命令


规则:显式规则、隐式规则、模式规则

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

问题将练习代码输入完成,在终端输入
gcc *.c -o main
进行编译,出现如下错误:



解决查找到的原因:

出现 在非结构或联合中请求成员 错误的原因一般可分为两种:

1、在函数中,在访问结构体或联合体内的成员变量时,发现访问的变量类型并非是一个结构体或联合体,如

char *test;


test.test或test->test都会出现这种错误

2、最常见的,使用结构体定义了一个指针,却使用 . 来访问,这种情况应该使用 -> 来访问,如

typedef struct Test{
char test[10];
}
Test *test;
printf("%s",test.test);//错误
printf("%s",test->test);//正确


可是再次检查代码,并没有发现这方面的问题,试了试将变量b改成用字母c表示时,很奇怪,这个错误消失了,但有了另外的问题



先将
div.c
代码内容改改试试



不行,再改



好,全将double改为int,问题没了(先不管代码了,主要运用一下其他的操作),下个问题继续解决

在 “main.c“文件中加入头文件

#include <stdio.h>
#include <stdlib.h>


警告的问题解决了,又有新问题了



查了下,都是说的可能是没加地址符号,但“div_t”什么意思啊?

暂时将有关div的函数运用忽略掉,先联系gcc、gdb等

问题 怎么进入下一步命令啊



解决 依旧使用 中断信号Ctrl+C



问题 调试时当到scanf时,出入数据后回车无法回到命令行,怎么回事?

解决 暂时没有解决,是因为代码有问题?

本周代码托管截图



学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标3500行25篇300小时
第一周70/702/222/22
第二周150/2201/323/23

参考资料

《深入理解计算机系统V2》学习指导

linux gcc 编译时“在非结构或联合中请求成员”错误解决办法

warning:format '%d' expects qrguiment of type.'int x',but argument 2 has type'int'.[-Wformat]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: