gdb调试命令小结 |
您所在的位置:网站首页 › gdb调试多文件程序 › gdb调试命令小结 |
摘要:在vs2010下,我们调试起来相当方便,但是使用gdb调试的时候,却困难重重。本文主要为你介绍如何在gdb下进行调试和如何将gdb打造成一个集成的编译环境。 1.gdb命令小结
设置断点:break(b) linenum b functionname 如果是在调试多个文件,可以这样设置断点: (gdb) break [:] (gdb) break [:]跳转: 从当前函数退出:finish 从当前循环退出:until 查看: 变量的值:p name 代码:list linenum list funcname 运行: 运行到地一句:start 连续运行:run 继续运行:continue 单步运行:next 进入函数内部:step 2.gdb的替代——集成开发环境
linux下的调试环境,如果使用vim和gdb会很容易让人崩溃,此时我们不妨在调试的时候使用一些IDE,比如Anjuta 3.其他的一些集成环境 此处有免费的10个C/C++集成开发环境。 4.多文件调试 在实际工程中,往往有多个文件,此时需要跨越文件进行调试。例如,我们在stack.c中定义了pop、push等操作,在main.c中引用了这些操作,假如在main.c的第10行引用了push,我们可以这样写: b main.c:10 设定断点,然后使用step命令,进入函数内部进行调试。 5.自动显示: 如果我们比较关心某个变量,必然很想知道程序每次执行停下来的时候,该变量的值,这里,我们用到了display命令: display display/ display/ gdb attach 调试 远程调试 远程调试的原理 远程调试的方法 远程调试的相关问题 5.几个常用的需求 1)条件断点:在满足某个条件的时候才设置断点: break 30 if x==3 info break 2)观察点:一旦某个表达式的值有变化,立马停止程序: watch expr 3)观察点的禁用与删除: 删除设置在某一行的断点: clear 39 删除第几个断点: d 1 禁用第几个断点: disable 1 4)自动化调试 说明:我们使用断点的目的,往往是希望程序停留在某处,这样好让我们查看某个变量的值;但是,如果每次都输出print相关变量的数值,这样会造成时间上的浪费,所以,我们可以进行自动化调试,这样每次程序运行到某个地方,自动打印相关变量的值。 break foo if x>0 commands printf "x is %d\n",x continue end 断点设置在函数foo中,断点条件是x>0,如果程序被断住后,也就是,一旦x的值在foo函数中大于0,GDB会自动打印出x的值,并继续运行程序。 如果你要清除断点上的命令序列,那么只要简单的执行一下commands命令,并直接在打个end就行了。 5)调试界面 最开始使用gdb,最不方便的地方就在于无法在调试的同时观看code;这里,我们使用参数 gdb -tui program 就可以实现如同windows一样的调试界面了,tui的意思是terminal user interface. |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |