关闭

gdb入门命令

标签: gdb
167人阅读 评论(0) 收藏 举报
分类:

gdb入门命令

这是gdb的入门指令,我本人也是新手,想通过写博客来提高自己的能力,希望能帮助到有需要的人,也希望有人可以指导。
我觉得学习gdb就要多练,不练的话话很快就会忘记那些命令,所以在这里列出这些命令是想大家一起,遇到想知道的命令就去谷歌。

简单命令一:

  • start:停在main函数后的第一条语句;
  • b (break):b+行号或者函数名,设置断点;
  • r (run):运行函数,如果没有其它设置,和普通的运行一样,设置了断点会停在断点处;
  • bt (backtrace): 查看各级函数调用及参数;
  • f (frame): 选择栈帧;
  • finish: 结束当前函数;
  • i (info) locals: 列出当前函数的局部变量;
  • l (list):列出源代码,从main开始,每次10行,可以用l 1 从文本开始处开始;
  • n (next):执行下一条语句,如果是函数调用,不进入函数;
  • s (step):执行下一条语句,进入函数;
  • p (print):打印变量,包括数组;打印时可以使用C的运算符,如sizeof(i),(int)a
  • q (quit):退出调试;
  • set var:修改变量的值(eg:set var sum = 0);

简单命令二:

  • break:break 可以加条件,break … if…
  • info b:列出断点;
  • delete breakpoint 断点号:删除断点;
  • disable breakpoints 断点号:禁用断点;
  • enable 断点号:启用断点;
  • c (continue):继续执行,遇到断点停下来;
  • display 变量:跟踪变量,每次停下来都显示它的值;
  • undisplay 变量:取消跟踪;

简单命令三:

  • watch :设置观察点,当观察点的值改变时,程序停下来;
  • info watchpoints:列出当前观察点;
  • x:打印储存单元信息(x/7bx:7表示打印七组,b :表示每个字节一组,x表示十六进制表示;
  • p *a@n:打印以指针为首地址的数组,n代表数组元素个数。
  • ptype a:打印一个变量的类型。
0
0
查看评论

GDB命令,逆向调试很有用

很有用的gdb命令,想用gdb反汇编的可以看看
  • transMaple
  • transMaple
  • 2015-09-13 22:14
  • 981

gdb-打开gdb的命令历史功能

打开gdb的命令历史功能,通常可以先执行下面的3个gdb命令set history filename gdb.history set history save on set history size 1000 第一个命令是将gdb的命令历史文件设置为gdb.history,设置完命令历史文件之后,将...
  • guoqianqian5812
  • guoqianqian5812
  • 2016-06-24 21:19
  • 1390

gdb调试学习(一) list命令的学习

linx之gdb调试学习,l(list)命令用于列出源码
  • qq_34501940
  • qq_34501940
  • 2016-07-15 20:22
  • 4587

gdb 自定义脚本命令语法简单介绍

1. # 为脚本注释命令 2. 赋值语句:set, 变量以$开始,以便区分是gdb还是调试程序变量。   变量可为全局或局部,视声明位置。  例如:     set $x = 1; 3. 函数声明语句:define .. end 语句   ...
  • hejinjing_tom_com
  • hejinjing_tom_com
  • 2015-12-18 12:02
  • 3323

步步学GDB-基本命令简写

命令 解释 示例 file 加载被调试的可执行程序文件。 因为一般都在被调试程序所在目录下执行GDB,因而文本名不需要带路径。 (gdb) file gdb-sample r Run的简写,运行被调试的程序。 如果此前没有下过断点,则执行完整个程序;如果有断点,则程序暂停在第一个可用断点处...
  • ccy365263452
  • ccy365263452
  • 2013-07-24 13:52
  • 1129

[每天一个Linux小技巧] gdb 下一次执行多个命令

一般gdb执行的时候,我们只能输入一个命令. 如: (gdb) c (gdb) bt 如果想执行多个命令怎么办? 是否能像bash那样, 使用; 如 ls; ls 结论是不行. 但可以通过gdb 内建函数的的方式来实现: (gdb) def cbt >c >bt...
  • robertsong2004
  • robertsong2004
  • 2014-07-25 15:20
  • 2492

gdb调试常用命令,attach,br,n,bt

在Oceanbase调试中,必须用到gdb,将常用命令搜集记录如下: 1. attach: 用gdb调试一个正在运行中的进程 gdb PID 2. br: 设置断点 br filename:line_num br namespace::classname::func_name 3....
  • maray
  • maray
  • 2012-02-01 22:26
  • 13504

gdb commands命令用法

gdb commands命令用法基本原理: 设置断点,使用 command 命令设置断点的执行命令 例如:在断点 1 处,打印 ret 变量的值。 //设置断点 (gdb) b rx_data Breakpoint 1 at 0xffffffffa02cccf8: file drivers...
  • DRLVROS
  • DRLVROS
  • 2016-02-25 17:24
  • 361

lldb(gdb)常用的调试命令

1> po:打印对象,会调用对象 description 方法。是 print-object 的简写 2> expr:可以在调试时动态执行指定表达式,并将结果打印出来,很有用的命令 3> print:也是打印命令,需要指定类型
4> bt:打印调用堆栈,是 thread ba...
  • hannibal_zj
  • hannibal_zj
  • 2016-07-28 22:57
  • 969

gdb基础命令和常用操作补充

GDB是Unix下的一个程序调试工具,类似于windows下面的VC调试器,区别在于GDB采用全命令行控制。 使用GDB需要在编译时使用-g选项,gcc支持-g –O选项同时使用,但如果还在调试阶段,尽量不要-O2,也不要删除(strip)符号表。作用如下: 让程序按照自己定义的要求运行...
  • Simba888888
  • Simba888888
  • 2015-01-23 11:42
  • 2417
    个人资料
    • 访问:3082次
    • 积分:167
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类