栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

GCC/GDB 安装以及常用的指令

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

GCC/GDB 安装以及常用的指令

GCC 安装

linux 下直接 apt-get install 就行
win 安装稍微麻烦一点,首先下载一个MinGW
默认安装,桌面生成快捷方式双击打开

安装完打开是这样的
1 首先选中箭头1所指右击 选择 Mark for Installation
2 点击左上角箭头2所指,选择 Apply changes
3 接着等待完成 close 就行
4 添加环境变量

添加到刚刚安装的 miniGW 的 bin 目录

5 测试是否安装成功

有版本号就可以了

编译过程

程序从源文件到可执行文件的过程的详细的内容可以参阅我的其他文章,这里只列出代码

g++ test.cpp -o test

1- 预处理

g++  -E test.cpp  -o test.i 

2- 编译

g++  -S test.i  -o   test.s

3- 汇编

g++  -c test.s  -o test.o

4- 链接

g++ test.o  -o test
一些重要的编译参数
g++ -g test.cpp

- 编译带调试信息的可执行文件
g++ -O[n] test.cpp

- O1 	为默认优化
- O2  	除了完成-O1的优化之外,还进行一些额外的调整工作,如指令调整等
- O3 	则包括循环展开和其他一些与处理特性相关的优化工作。
g++ -I/include_dir test.cpp

- 使用 -I 来添加头文件包含目录
g++ -Wall test.cpp

- 打印警告消息
g++ -w test.cpp

- 关闭所有警告消息
g++ -std=c++11 test.cpp

- 使用c++11的标准来编译
g++ -D[***] test.cpp

- 当源码中有宏定义等条件编译的选项可以通过 -D 的参数开启
g++ test.cpp -o test

- 指定输出,不指定输出文件名为 a(a.exe)
GDB 安装

linux apt-get install 应该就行
win 还是通过上面提到的 miniGW 安装

安装步骤同 GCC 不累述了

有版本信息就成功了

GDB 指令
g++ -g debug.cpp -o debug

gdb debug.exe

- 在编译的时候加上 -g 的参数才能使用 gdb 的功能
== 打断点 ==
break < 函数名 >
break < 行号 >
break < 文件名:行号 >
break < 文件名:函数名 >
break < +/-偏移量 >  当前行的 +/- 偏移处设置断点
break < *地址 >  指定的地址打断点
== 删除断点 ==
clear 与 break 对应
delete  breakpoints num # 删除第num个断点
== run(r) continue(c) ==
run 					从头开始执行,直到遇到断点
run argv[1] argv[2] 	调试时命令行传参
continue 				从当前执行位置往下

== 打印 print(p) ==
print /[] 变量 或者 $寄存器名
[] 为输出格式 x/d/o/u/f/s...
print $pc
== info(i) ==
info all-registers 	查看所有寄存器的值
info register 		查看某个寄存器的值,如 info register pc 命令可以查看PC指针的内容
info breakpoints 	查看所有断点位置,breakpoints(break/b)
== list(l) 查看源码 ==
list 				显示当前行前后的代码,默认显示十行,按回车查看更多
list - 				显示当前行之前的代码
list <行号>			显示指定行号前后的代码
list <文件名:行号>	显示指定文件中指定行号前后的代码
== 执行与退出 ==
next(n)  	单步(逐语句)执行
continue(c) 继续运行  或者按 tab键
step(s)  	跳转到函数内部
finish   	结束当前函数,返回到函数调用点
quit(q)  	退出 gdb
== 其他 ==
enable breakpoints  	 启用断点
disable breakpoints 	 禁用断点
display 				 追踪查看具体变量值
undisplay
watch 					 被设置观察点的变量发生修改时,打印显示
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/890092.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号