GDB调试器
2016-03-18 00:30
183 查看
GCC用于编译程序,而Linux的另一个GNU工具gdb则用于调试程序。gdb是一个用来调试C和C++程序的强力调试器,我们能通过它进行一 系列调试工作,包括设置断点、观查变量、单步等。 其最常用的命令如下:
file:装入想要调试的可执行文件。 kill:终止正在调试的程序。 list:列表显示源代码。
next:执行一行源代码但不进入函数内部。 step:执行一行源代码而且进入函数内部。 run:执行当前被调试的程序 quit:终止gdb
watch:监视一个变量的值
break:在代码里设置断点,程序执行到这里时挂起
make:不退出gdb而重新产生可执行文件
shell:不离开gdb而执行shell
设置断点的另一种语法是 break <function>,它在进入指定函数(function)时停住。 相反的,clear用于清除所有的已定义的断点,clear <function>清除设置在函数上的断点, clear <linenum>则清除设置在指定行上的断点 。
watch命令:
watch命令用于观查变量或表达式的值,我们观查sum变量只需要运行watch sum:
watch <expr>为表达式(变量)expr设置一个观察点,一量表达式值有变化时,程序会停止执行。
要观查当前设置的watch,可以使用info watchpoints命令。 next、step命令:
next、step用于单步执行,在执行的过程中,被watch变量的变化情况将实时呈现(分别显示Old value和New value),如下图:
next、step命令的区别在于step遇到函数调用,会跳转到到该函数定义的开始行去执行,而next则不进入到函数内部,它把函数调用语句当作 一条普通语句执行。
file:装入想要调试的可执行文件。 kill:终止正在调试的程序。 list:列表显示源代码。
next:执行一行源代码但不进入函数内部。 step:执行一行源代码而且进入函数内部。 run:执行当前被调试的程序 quit:终止gdb
watch:监视一个变量的值
break:在代码里设置断点,程序执行到这里时挂起
make:不退出gdb而重新产生可执行文件
shell:不离开gdb而执行shell
设置断点的另一种语法是 break <function>,它在进入指定函数(function)时停住。 相反的,clear用于清除所有的已定义的断点,clear <function>清除设置在函数上的断点, clear <linenum>则清除设置在指定行上的断点 。
watch命令:
watch命令用于观查变量或表达式的值,我们观查sum变量只需要运行watch sum:
watch <expr>为表达式(变量)expr设置一个观察点,一量表达式值有变化时,程序会停止执行。
要观查当前设置的watch,可以使用info watchpoints命令。 next、step命令:
next、step用于单步执行,在执行的过程中,被watch变量的变化情况将实时呈现(分别显示Old value和New value),如下图:
next、step命令的区别在于step遇到函数调用,会跳转到到该函数定义的开始行去执行,而next则不进入到函数内部,它把函数调用语句当作 一条普通语句执行。
相关文章推荐
- 2016/3/17面试的总结
- [HDU 3572]Task Schedule[最大流]
- bjfu.oj-1470 poj-2777
- 转载一篇对php变量名的问题,很有意思,之前没注意过
- 实现带样式的表单验证:用户名、密码验证
- Java Gradle入门指南之插件管理(类型、导入及java plugin使用)
- Java SE作业:判断一个字符串是否是视频文件
- 测试内容
- 详解spl_autoload_register()函数
- GCC编译器
- IOS 页面之间的跳转以及传值
- Ubuntu上Docker安装
- Codeforces 620D STL+二分
- 【C#进阶系列】12 泛型
- 修改元素的属性:使用自定义属性实现摇号排名
- 缓存整个页面
- 【C#进阶系列】11 泛型
- 汇编之路-2
- 使用用户控件(2)
- 使用gcc生成动态链接库dll的方法