gdb的简单使用

来源:互联网 发布:xc系列编程工具 编辑:程序博客网 时间:2024/05/18 20:36
gdb简介
    gdb的简单使用:gdb execfile(可执行文件)
    不过在要用gdb之前,编译时要加上 -g 选项
1、l(list命令的简写):
例如: “l 12”,将会显示第12行(以及它前后若干行)
“l main”将显示main函数开头附近十行
不加参数,直接“l”会显示下10行;
“list -”将显示上10行
另外,所有的操作都可以用“help list”命令查看
2、r(run命令的简写):
run命令会一直执行到程序结束。使用b(break命令设置断点)就可以停下了
例如:b main命令将在main函数的开始出设置断点,然后用r命令执行时会在main
起始处停下来。如果想继续运行,可以使用c(continue命令),而不是r命令.
和list命令相似,b命令也可以指定行号,例如:"b 9"就是设置第九行为一个断点。
那要删除断点怎么办?用clear(cl)命令,clear命令和b命令使用相同。
3、n(next)和s(step):
二者的作用是执行当前行,区别在于如果当前行是调用函数,则next是把整个函数
体的所有语句都一次性执行完,而step则是进入函数内部执行语句。
另外在gdb中,直接按Enter键,等价于再次执行上一次指令,所以需要连续执行
next或step语句时,只要一开始输入一次,之后狂按Enter即可。还有就是,用
终端的同学应该清楚,在terminal中按上下键是可以查看历史记录,用gdb的时候
同样可以使用上下键来查看历史记录。
4、u(until):
顾名思义,until指令就是指执行到指定的位置,例如:“u 9”就是执行到第九行
“u add”就是执行到add函数的开头位置。
5、p(print):
你想,没事你停下来要干嘛?当然是打印一些函数值之类的啦,所以需要print指令。
同样的还有i(info)指令,例如:info locals(简写为i lo)显示所有局部变量
还有display(简写为disp)命令,例如:display i+1就可以读取i+1的值了。


gdb常见命令表格:
—————————————————————————————————
简写          全称                                          备注
—————————————————————————————————
    l     --      list           显示指定行号或者指定函数附近的源代码
—————————————————————————————————
    b    --     break       在指定行号或指定函数开头设置断点。如:b main
—————————————————————————————————
    r     --      run          运行程序,直到程序结束或遇到断点而停下
—————————————————————————————————
    c    --    continue    在程序中断后继续执行程序,直到遇到断点或结束程序
                                  注意,在开始执行前只能用r,不能用c
—————————————————————————————————
    n    --     next          执行一条语句,如果有函数,则调用函数(作为整体)
—————————————————————————————————
    s    --     step          执行一条语句,如果有函数,则进入函数内部
—————————————————————————————————
    u    --     until          执行到指定行号或指定函数的开头
—————————————————————————————————
    p    --     print          显示变量或表达式的值
—————————————————————————————————
 disp   --    display      把一个表达式设置为display,当程序每次停下来时
                                  都显示其值
—————————————————————————————————
    cl   --     clear         取消断点,和b的格式相同。如果该位置有多个断点,
                                  则会同时取消所有断点
—————————————————————————————————
     i   --     info          显示各种信息,如:i b显示所有断点,i disp显示
                                 display,而i lo显示所有局部变量
—————————————————————————————————
0 0
原创粉丝点击