您的位置:首页 > 其它

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则不进入到函数内部,它把函数调用语句当作 一条普通语句执行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: