信息安全系统设计第二周实验报告
2015-09-27 15:18
253 查看
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
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
相关文章推荐
- 二叉树、树、森林之间的转换
- 飞秋基本udp通信
- 爬取淘宝MM图片
- 关于Logcat在真机调试时没有输出的问题
- listView的convertView复用机制
- leetcode 243: Shortest Word Distance
- Trie相关的一些题目[draft]
- ASP.NET Web API 异常日志记录
- 拼音检索
- 有用的摄影测量与遥感专业英文文献
- 逻辑操作与条件操作的区别
- Modesim 仿真 ERRO VSIM-19
- 黑马程序员---java基础---多态,抽象类,接口
- 浩杰兄给的好网站链接,收藏收藏
- 跨域问题
- Maven常用命令
- 第一周作业分数(不含个人项目分数)- 更新包含团队成绩的分数
- linux文件特殊属性介绍(s,s,t)
- objective-c创建线程的3种方式
- 剑指 offer:二叉搜索树的后序遍历序列