(十三)GCC编辑器和GDB调试工具
来源:互联网 发布:势不可挡网络剧 编辑:程序博客网 时间:2024/05/16 17:16
一、GCC编辑器
1、GCC编辑器的编译流程
预处理-->编译-->汇编-->链接
. c——c语言源代码
. h——程序所包含的头文件
. i——已经预处理过的c源代码文件
. s——汇编语言的源代码文件
. o——编译后的目标文件——不可执行的二进制文件
2、gcc指令的一般格式:gcc[ 选项 ] 要编译的文件 [ 选项 ] [ 目标文件 ]
-预处理阶段:处理所有#开头的指令,生成 .i 文件,(比如hello.c,将stdio.h文件的内容插入到 .i 文件中)
gcc -E hello.c -o hello.i
-编译阶段:gcc首先检查代码的规范性,包括语法的正确以及函数与变量的声明是否正确,在检查无误后,gcc将源代码翻译成汇编语言
gcc -S hello.i -o hello.s
-汇编阶段:将编译生成的.s文件转换成目标文件(不可执行的二进制文件)
gcc -c hello.s -o hello.o
-链接阶段:链接器会在所有的目标文件中找寻函数的实现,如果找不到就会报链接错误,链接成功后,就会生成可执行的二进制文件
gcc hello.o -o hello
二、GDB调试工具
1、作用:可以查看程序的内部结构,打印变量值,设置断点以及单步调试源代码
注:gdb调试的是可执行文件,不是.c文件
2、GDB调试流程
查看文件:(gdb)l
设置断点:(gdb)b 6(行号)
查看断点情况:(gdb)info b
运行代码:(gdb)r
查看变量值:(gdb)p n(变量名)
单步运行:(gdb)n(不进入调用函数的内部)
(gdb)s(进入调用函数的内部)
恢复程序运行:(gdb)c
帮助:(gdb)help 命令
退出:(gdb)quit
1、GCC编辑器的编译流程
预处理-->编译-->汇编-->链接
. c——c语言源代码
. h——程序所包含的头文件
. i——已经预处理过的c源代码文件
. s——汇编语言的源代码文件
. o——编译后的目标文件——不可执行的二进制文件
2、gcc指令的一般格式:gcc[ 选项 ] 要编译的文件 [ 选项 ] [ 目标文件 ]
-预处理阶段:处理所有#开头的指令,生成 .i 文件,(比如hello.c,将stdio.h文件的内容插入到 .i 文件中)
gcc -E hello.c -o hello.i
-编译阶段:gcc首先检查代码的规范性,包括语法的正确以及函数与变量的声明是否正确,在检查无误后,gcc将源代码翻译成汇编语言
gcc -S hello.i -o hello.s
-汇编阶段:将编译生成的.s文件转换成目标文件(不可执行的二进制文件)
gcc -c hello.s -o hello.o
-链接阶段:链接器会在所有的目标文件中找寻函数的实现,如果找不到就会报链接错误,链接成功后,就会生成可执行的二进制文件
gcc hello.o -o hello
二、GDB调试工具
1、作用:可以查看程序的内部结构,打印变量值,设置断点以及单步调试源代码
注:gdb调试的是可执行文件,不是.c文件
2、GDB调试流程
查看文件:(gdb)l
设置断点:(gdb)b 6(行号)
查看断点情况:(gdb)info b
运行代码:(gdb)r
查看变量值:(gdb)p n(变量名)
单步运行:(gdb)n(不进入调用函数的内部)
(gdb)s(进入调用函数的内部)
恢复程序运行:(gdb)c
帮助:(gdb)help 命令
退出:(gdb)quit
1 0
- (十三)GCC编辑器和GDB调试工具
- Linux学习 [2] vi编辑器 gcc工具链 make和Makefile gdb调试工具
- Linux下的常用shell命令,文本编辑器vi和C语言编译、调试工具gcc、gdb的使用心得
- 据说,VIM(编辑器)+GCC(编译器)+GDB(调试器)是Linux下最常用的开发工具链
- GCC编译和GDB调试
- Linux下的常用shell命令,文本编辑器vi和C语言编译、调试工具gcc、gdb的使用心得 [转]
- Linux学习(十二):gcc编译和gdb调试
- Linux之vim编辑器和gcc,gdb
- gcc/g++编译器和gdb调试器
- 2.3 GCC编译器和GDB调试器
- 使用gcc和 gdb,调试程序
- Linux gcc和gdb程序调试用法
- linux下gcc和gdb调试
- GCC编译器和GDB调试器
- Linux GCC编译器和GDB调试器
- 0409学习总结1(gcc工具链,gdb调试工具,make工程管理)
- GCC与GDB工具和makefile基础
- gcc,gdb安装和gdb基本调试命令
- centos7下mysql安装
- ios - loadView与viewDidload
- git跟踪分支
- 批处理学习
- cygwin选中文本时命令行出现^C并换行的问题
- (十三)GCC编辑器和GDB调试工具
- ANGULAR 从 1 到 2 快速参考
- Hive UDF整理 字符串函数
- 欢迎使用CSDN-markdown编辑器
- 使用inotifywait和rsync进行实时备份
- React Native(一):搭建开发环境、出Hello World
- jQuery+Ajax+PHP+Mysql实现分页显示数据
- 苹果强制使用HTTPS传输后APP开发者必须知道的事
- Error:warning: Ignoring InnerClasses attribute for an anonymous inner class