Linux系统GCC程序编译,GNU程序调试
来源:互联网 发布:中国推理小说知乎 编辑:程序博客网 时间:2024/06/01 17:25
GCC编译过程:通过后缀名判断文件类型
预处理:展开宏文件
编译
汇编
链接
.c C语言源代码文件
.o 编译后的目标文件
.s 汇编语言源代码文件
-o:eg:gcc hello.c -o hello
-g:eg:gcc -g hello.c -o hello生成调试工具所需要的符号信息
-c:eg:gcc -c hello.c -o hello只编译,不生成可执行文件,输入的.c文件生成.o的目标文件
-O:eg:gcc -O hello.c -o hello对程序进行优化编译(time ./hello 可以计算程序运行的时间)
-O2:eg:gcc -O2 hello.c -o hello比-O更好的优化编译
-Idirname:将此目录加到程序头文件列表中
标准的 头文件存放在gcc编译器的文件夹中(user/include),自己写的文件没有在gcc编译器的文件夹中
方法1、把自己编写的文件存放在gcc编译文件夹中
方法2、用-Idirname(I+目录的名字)指定编译时搜索的文件夹eg:gcc -I/home.... hello.c -o hello
-Ldirname:将此目录加到库文件目录列表中(:链接时)
GDB主要完成的功能
1、启动被调试程序
2、让程序在指定位置停下来
3、当程序停下来,可以检查程序的状态(eg:变量值)
1、编译成可执行文件 gcc -g hello.c -o hello
2、启动GDB gdb hello
3、设置断点
break mian(main函数入口处)eg:b(break简写) main
break 23(根据行号打断点)
break 文件名:行号(根据文件名和行号打断点),程序由多个文件组成
break 行号if条件:根据条件打断点eg:b 23 if i=10(行号+条件)
4、运行程序 run
5、单步运行(不进入子函数) next
6、连续运行 continue
7、单步运行(进入子函数) step
8、查看指定变量值:print 变量名
9:对指定变量进行监视:watch 变量名
10:运行程序,直到当前函数结束:finish
退出调试quit
info break:查看所有断点的信息
delete 断点编号:删除断点
l:(list简写)查看程序
- Linux系统GCC程序编译,GNU程序调试
- mips64el-unknown-linux-gnu-gcc交叉编译ELF-64程序
- mips64el-unknown-linux-gnu-gcc交叉编译ELF-64程序
- Linux gcc gdb 编译调试程序
- linux GCC程序编译
- GCC编译GDB调试程序
- Linux下编译调试C程序(GCC,GDB)
- Linux下的简单C程序gcc编译、gdb调试。
- linux gcc编译C程序
- linux历程--GCC程序编译
- linux gcc编译C程序
- linux gcc编译C程序
- GNU C++程序编译
- 在Windows下用GNU/g++/gdb编译调试程序
- gcc程序编译和gdb程序调试的基本选项
- Linux程序编译+GDB调试
- 在Linux中用gdb调试GCC程序
- 在Linux中用gdb调试GCC程序
- Increasing Sub-sequence
- 商城之OKHttp的简单封装
- Struts2中注册登录模块配置文件路径更改
- Mac 环境下安装 TensorFlow 使用Virtualenv 安装
- SQL注入--sql server
- Linux系统GCC程序编译,GNU程序调试
- 实现DIV的其他动画效果
- hdu 1043 eight
- 大话数据结构读书笔记 4---树
- ajax-创建XMLHttpRequest对象
- 认识css样式(元素居中)
- Android之Toast
- Spark
- Cannot create __weak reference in file using manual refrence counting.