gcc和gdb的常用指令

gcc的常用命令

命令作用
-o <file>将命令的执行结果写入<file>文件中,默认为a.out
-E预处理操作,生成预处理文件
-S编译操作,生成汇编语言目标文件
-C汇编操作,生成可重定位目标文件
-I <dir>将<dir>加入到头文件的搜索目录中,链接时在搜索标准头文件之前先在<dir>进行搜索
-L <dir>将<dir>加入到库文件的搜索目录中,链接时在搜索标准头文件之前先在<dir>进行搜索
-D <name>将宏<name>定义为1
-D <name> = <def>将宏<name>定义为<def>
-v输出版本号
-w不输出警告信息
-g生成调试信息
-pg加入剖析代码,产生供gprof工具剖析用的统计信息
-O <n>设置编译优化级别,<n> = 0,1,2,3,s,默认为1。其中0表示不优化,3为最高等级的优化,s为2.5

gdb的常用命令

命令作用
gdb启动gdb,随后进入gdb调试工具
gdb [可执行文件名]启动gdb并加载调试文件,随后进入gdb调试工具
file <可执行文件名>加载可执行文件进行调试
run [参数列表]启动已经加载的被调试的程序,程序输入的参数可选,用空格分隔
list [显示对象]显示源代码,其中显示对象见下表
break [断点]设置断点,断点设置见下表。设置完断点后,默认状态是有效的
delete [断点编号]删除某断点
enable [断点编号]使某断点有效
disable [断点编号]使某断点无效
info [信息类型]查看被调试程序的信息。如br查看所有断点的详细信息(包括断点号);source查看源代码;stack查看栈信息;args查看参数信息
watch <表达式>观察某个表达式的值是否改变,若改变,暂停程序
print <表达式>显示某个表达式的值,该表达式中的变量必须是全局的,或者在当前栈区可见
x /NFU address显示内存单元的值。/NFU设置输出格式:N代表输出个数,默认为1;F代表输出格式,x为16进制,d为带符号10进制,u为无符号10进制,f为浮点数;U代表数据单元的大小,b为字节,h为双字节,w为四字节,g为八字节
step进入函数内部
next执行下一条语句,不会进入函数内部
continue使程序继续执行
quit退出gdb工具
help [命令名]输出某个命令的用法

list和break命令的参数

两个命令的参数含义较为相近,故放在一张表中。

参数在list中的作用在break中的作用
<linenum>显示行号为<linenum>的前后若干行代码在行号为<linenum>的代码处设置断点
<+offset>显示当前行+offset对应的行的前后若干行代码在当前行+offset对应的行的代码处设置断点
<-offset>显示当前行-offset对应的行的前后若干行代码在当前行-offset对应的行的代码处设置断点
<filename: linenum>显示在filename文件中行号为linenum的前后若干行代码在filename文件中行号为linenum的代码处设置断点
<function>显示在函数代码在函数入口处设置断点
<filename: function>显示在filename文件中的function函数代码在filename文件中的function函数入口处设置断点
* address显示address地址处的代码在address地址处设置断点
<condition>-设置一个条件断点,满足<condition>条件断点才会生效

参考资料:《计算机系统基础》,袁春风 编著

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值