信息安全系统设计第二周实验报告
linux下的C语言编程环境
VIM是文本编辑器
大写“K”可以用来查找函数的帮助信息:
查看 man page,命令模式下,将光标放在函数名上,按"K"可以直接察看 man page。
预处理阶段:头文件和宏定义,—E可以让gcc在预处理结束之后停止编译过程,因此可以看到预处理的过程
一般格式为:gcc [选项] 要编译的文件 [选项] 目标文件
gcc -E hello.c -o hello.i
·编译阶段:gcc将代码翻译成汇编语言,使用选项-S只进行编译而不进行汇编,结果生成汇编代码。
gcc -S hello.i -o hello.s
汇编阶段:将.s文件转成目标文件,使用选项-c可以看到汇编代码转换为二进制目标代码。
gcc -c hello.s -o hello.o
链接阶段:默认搜索链接到libc.so.6函数库当中,调用库文件中已经实现的函数。
GCC:
(1)预处理:gcc –E hello.c –o hello.i;gcc –E调用cpp
(2)编 译:gcc –S hello.i –o hello.s;gcc –S调用ccl
(3)汇 编:gcc –c hello.s –o hello.o;gcc -c 调用as
(4)链 接:gcc hello.o –o hello ;gcc -o 调用ld
建议使用CGDB,比GDB好用,熟悉VC的调试方式,可以使用DDD。 注意使用GCC编译时要加“-g”参数。 参考gdb参考卡GDB最基本的命令有:
- gdb programm(启动GDB)
- b 设断点(要会设4种断点:行断点、函数断点、条件断点、临时断点)
- run 开始运行程序
- bt 打印函数调用堆栈
- p 查看变量值
- c 从当前断点继续运行到下一个断点
- n 单步运行
- s 单步运行
- quit 退出GDB