gdb调试命令小结

您所在的位置:网站首页 gdb调试多文件程序 gdb调试命令小结

gdb调试命令小结

2024-01-17 23:38| 来源: 网络整理| 查看: 265

摘要:在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