gdb基本操作

本文摘抄于宋劲彬老师的《linux编程一站式学习》

在介绍gdb前先声明,工具再强大,修bug的基本思想也是:“分析现象->假设错误原因->产生新的现象去验证假设”这个道理。

 

gdb就是一个功能强大的程序调试工具,可以实现断点调试,局部变量值查看等等,是用来辅助程序员查找bug的工具。

 

gdb的使用:

编译时用-g参数生成的文件才能被gdb调试,如gcc -g test.c -o test;则test文件就可以用gdb来调试,需要注意的是test.c的文件名也不能更改,因为test其实并不含有代码。

在linux shell下直接键入gdb test就可以调试test文件了,按q即可退出。下面给出调试时的基本命令:

gdb基本命令1:(这里的栈帧是指某函数在栈堆里的位置)

start    开始执行程序,停在main函数第一行语句前等待命令

list(或l)    列出源代码,接着上次的位置往下列,每次列10行

list+行号    列出某行开始的源代码

list+函数名      列出某函数的源代码

backtrace(或bt)    查看各级函数调用及参数

frame(或f)+帧编号    选择栈帧

info(或i)+locals    查看当前栈帧局部变量的值

next(或n)    执行下一条语句,跳过调用的函数

step(或s)    执行下一条语句,进入调用的函数

print(或p)+表达式    打印表达式的值,通过表达式可以修改变量的值或者调用函数

set+var+变量赋值语句   修改变量的值

finish                            执行到当前函数返回,然后停下来等待命令

 

未完待续……

 

posted on 2016-12-06 19:25  枪眼  阅读(106)  评论(0)    收藏  举报

导航