gcc和gdb合编.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
gdb调试调试命令:gdb 【可执行文件】退出gdb:quit(q)(在gdb中大部分命令都可以用缩写表示)显示源代码:list (l)查看某行代码:list 【行号n】(缩写l 行号n)程序会显示n行上下共十行的代码查看函数代码:list 【函数名】(缩写 l 函数名)显示当前行后面的代码:list显示当前行前面的代码:list–一般是显示当前行的上5行和下5行,或者显示当前行的上2行和下8行,默认共显示10行。也可以自己设置显示的范围。set listsize count: 设置一次显示源代码的行数show listsize:查看当前listsize的设置。显示first到last行之间的代码:list first,last显示从前行到last行的代码:list ,last向后显示源代码:list +设置断点:break 【行号n】(缩写b 行号n)break 【函数名】(缩写b 函数名)break if condition 条件成立时停止查看断点:info break (缩写 i b)断点都有断点号单步跟踪并进入函数:step (s)单步跟踪,但不进入函数:next (n)运行到下一断点:continue (c)不设置断点,直接运行程序:run (r)finish:运行程序,知道当前函数完成返回,并打印函数返回时的堆栈地址及参数值等信息跳出循环:until查看变量值:print 【变量名】(p 变量名)delete 【断点号】:删除断点clear命令:clear命令是用来清除断点的的命令clear 要清楚的断点所在的行号clear命令与delete命令不同,delete命令后跟断点编号,而clear命令后面跟的是断点所在的行号,另外,使用clear命令,gdb会给出提示,而delete命令没有。enable命令:enable可以恢复暂时失效的断点enable 断点标号要恢复多个断点时,可用空格将断点编号隔开disable命令:disable命令可是刚设置的的断点失效,失效后用命令cont继续程序的执行disable 断点编号ptype 【变量名】:查看变量类型print 数组名[标号]:查看数组元素的值print 【变量1】=n:将变量1的值改为nprint 命令详解:形式1:print 表达式表达式中与两种特殊符号要注意,$,$$,用print查看表达式时,表达式的值都会被记录下来,并会以$1,$2,$3等编上号,这样就可以通过print $n,命令查看系统记录的 $n的值,而要查看从当前记录的值开始往后推n个的记录值时应该用$$符号,如现在记录到$5,要看看$3,则可用print $$2命令查看。另外如果$后边不加数字,相当于print当前标号之前的print值,同时,如果$$加不加数字,则表示print当前标号倒数的第二个print记录。形式2:print 变量=表达式形式3:打印内存某个部分开始的一块连续空间的内容Print 开始表达式@要打印内存空间的大小开始表达式应该是内存中的一个表达式,他的输入结果以数组的形式,其中第0个元素师开始表达式的值,第1个元素是在内存中紧挨着开始表达式的空间中存放的值,以此类推。display命令:display用来显示一些表达式的值,使用该命令后,每当程序运行到断点处就会显示该表达式的值,可以用它来观察一些表达式的值,它与print的区别是,display命令每次调试中断程序,挂起指令都要显示变量的值。形式:display 要显示值的表达式set 命令:set除了可以显示数据外,还可以修改变量的值使用观察窗口使用观察窗口与在程序的特定位置设置断点实现的功能相似,但使用观察窗口值在表达式为真时中断程序的运行。watch命令:使用watch命令设置观察窗口例如程序段如下:for(counter=0;counter30;couter++){}设置观察窗口(gdb)watch counter15则程序会在表达式counter15为真时中断程序搜索源代码向前搜索:forward-search regexp或search regexp反向搜索:reverse-search regexp其中regexp就是正则表达式,也是一个字符串的匹配模式在输入gdb命令时,直接点击回车,执行上条命令编译错误:编译程序时没有符合语法规范导致编译错误运行错误:编译器检查不出这种错误,但在运行时可能会出现这种错误逻辑错误:编译和运行都很顺利,但是程序没有干他该干的事段错误:由于访问非法地址发生的错误访问系统数据区,尤其是往系统保护的内存地址写数据,最常见的是一个内存以0地址内存越界(数组越界,数据类型不一致等),访问不到属于你的内存区域。查看栈信息当程序被停止的时候,需要做的第一件事是查看程

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档