命令  解释  示例
file <文件名> 加载被调试的可执行程序文件。
因为一般都在被调试程序所在目录下执行GDB,因而文本名不需要带路径。
(gdb) file gdb-sample
r Run的简写,运行被调试的程序。
如果此前没有下过断点,则执行完整个程序;如果有断点,则程序暂停在第一个可用断点处。
(gdb) r
c Continue的简写,继续执行被调试程序,直至下一个断点或程序结束。 (gdb) c
b <行号>
b <函数名称>
b *<函数名称>
b *<代码地址>

d [编号]

b: Breakpoint的简写,设置断点。两可以使用“行号”“函数名称”“执行地址”等方式指定断点位置。
其中在函数名称前面加“*”符号表示将断点设置在“由编译器生成的prolog代码处”。如果不了解汇编,可以不予理会此用法。

d: Delete breakpoint的简写,删除指定编号的某个断点,或删除所有断点。断点编号从1开始递增。

(gdb) b 8
(gdb) b main
(gdb) b *main
(gdb) b *0x804835c

(gdb) d

s, n s: 执行一行源程序代码,如果此行代码中有函数调用,则进入该函数;
n: 执行一行源程序代码,此行代码中的函数调用也一并执行。

s 相当于其它调试器中的“Step Into (单步跟踪进入)”;
n 相当于其它调试器中的“Step Over (单步跟踪)”。

这两个命令必须在有源代码调试信息的情况下才可以使用(GCC编译时使用“-g”参数)。

(gdb) s
(gdb) n
si, ni si命令类似于s命令,ni命令类似于n命令。所不同的是,这两个命令(si/ni)所针对的是汇编指令,而s/n针对的是源代码。 (gdb) si
(gdb) ni
p <变量名称> Print的简写,显示指定变量(临时变量或全局变量)的值。 (gdb) p i
(gdb) p nGlobalVar
display ...

undisplay <编号>

display,设置程序中断后欲显示的数据及其格式。
例如,如果希望每次程序中断后可以看到即将被执行的下一条汇编指令,可以使用命令
“display /i $pc”
其中 $pc 代表当前汇编指令,/i 表示以十六进行显示。当需要关心汇编代码时,此命令相当有用。

undispaly,取消先前的display设置,编号从1开始递增。

(gdb) display /i $pc

(gdb) undisplay 1

i Info的简写,用于显示各类信息,详情请查阅“help i”。 (gdb) i r
q Quit的简写,退出GDB调试环境。 (gdb) q
help [命令名称] GDB帮助命令,提供对GDB名种命令的解释说明。
如果指定了“命令名称”参数,则显示该命令的详细说明;如果没有指定参数,则分类显示所有GDB命令,供用户进一步浏览和查询。
(gdb) help display
命令 描述
backtrace(或bt) 查看各级函数调用及参数
finish 连续运行到当前函数返回为止,然后停下来等待命令
frame(或f) 帧编号 选择栈帧
info(或i) locals 查看当前栈帧局部变量的值
list(或l) 列出源代码,接着上次的位置往下列,每次列10行
list 行号 列出从第几行开始的源代码
list 函数名 列出某个函数的源代码
next(或n) 执行下一行语句
print(或p) 打印表达式的值,通过表达式可以修改变量的值或者调用函数
quit(或q) 退出gdb调试环境
set var 修改变量的值
start 开始执行程序,停在main函数第一行语句前面等待命令
step(或s) 执行下一行语句,如果有函数调用则进入到函数中

转载于:https://www.cnblogs.com/dk666/p/7576921.html

GDB调试——常用命令相关推荐

  1. gdb调试常用命令速查(段错误调试)

    编译程序时需要加上-g,之后才能用gdb进行调试:gcc -g main.c -o main gdb中命令: 回车键:重复上一命令 (gdb)help:查看命令帮助,具体命令查询在gdb中输入help ...

  2. gdb 不能显示变量_linux下gdb调试常用命令汇总

    1.对于一个.c文件需要在编译时加上-g生成的.out文件才能使用gdb进行编译,如下图所示 2.使用gdb XX文件进入gdb调试 3.使用start开始进行调试,初始只有一个断点在main函数,可 ...

  3. 调试多线程 查死锁的bug gcore命令 gdb对多线程的调试 gcore pstack 调试常用命令...

    gdb thread apply all bt 如果你发现有那么几个栈停在 pthread_wait 或者类似调用上,大致就可以得出结论:就是它们几个儿女情长,耽误了整个进程. 注意gdb的版本要高于 ...

  4. Linux后台开发系列之「08.15 个 gdb 调试基础命令」

    代码键盘 版权声明:本文为 cdeveloper 原创文章,可以随意转载,但必须在明确位置注明出处! gdb 简介 gdb 是 UNIX 及 UNIX-like 下的调试工具,在 Linux 下一般都 ...

  5. linux之gdb调试常用100个技巧

    linux之gdb调试常用100个技巧 https://gitlore.com/page/gitlore-git/gdb_tips/index.html 如果不懂linux gdb调试的 看下这篇文章 ...

  6. Windows下 网络调试常用命令

    网络调试常用命令 Windows提供了一组实用程序来实现简单的网络配置和管理功能,这些实用程序通常以Dos命令的形式出现.用键盘命令来显示和改变网络配置,感觉像直接操纵硬件一样,不但简单方便,而且效果 ...

  7. GDB多线程调试常用命令

    gdb调试命令 step和next的区别? 当前line有函数调用的时候,next会直接执行到下一句 ,step会进入函数. 查看内存 (gdb)p &a //打印变量地址 gdb)x 0xb ...

  8. gdb调试器命令(zz)

    [url]http://blog.iyi.cn/hily/archives/2006/05/post_12.html[/url] Linux中包含有一个很有用的调试工具--gdb(GNU Debuge ...

  9. gdb调试常用概念整理

    GDB 调试模型 主要又两种调试模型:代码调试跟踪与优化(一)--- 如何用GDB 调试代码?_流云IoT的博客-CSDN博客 本地调试:调试程序和被调试程序运行在同一台电脑中. 远程调试:调试程序运 ...

最新文章

  1. 管理者如何管理好有一个团队?
  2. 《ADO.NET 2.0高级程序设计》读书随笔(1)使用连接池connection pool
  3. 泊松分布E(X^2)
  4. arm linux gnueabi编译,交叉编译器 arm-linux-gnueabi 和 arm-linux-gnueabihf 的区别
  5. Tomcat学习笔记02【Tomcat部署项目】
  6. 写一个程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。(单词之间用空格隔开,如“Hello World My First Unit Test”);...
  7. 一个“程序员的自我修养”是什么?
  8. mysql编译和yum安装哪个好_Centos7下PHP源码编译和通过yum安装的区别和以后的选择...
  9. 工程之道 | CPU推理性能提高数十倍,MegEngine计算图、MatMul优化解析
  10. python time
  11. 走进双亲委派机制LoadClass
  12. Ghost命令使用方法
  13. 数仓 调度_【数仓开发-数仓概念篇】3.3 报表vs数据可视化vs ETL
  14. win版跳过id锁工具_实测:一键跳过苹果锁,免费
  15. java print argc_【转】main 函数参数 argc argv env 与命令行
  16. Mindjet MindManager 2018 版本下载
  17. laravel Eloquent小技巧
  18. 使用RT-Thread Studio DIY 迷你桌面时钟(一)| 基于STM32芯片创建HelloWorld工程
  19. 【特征】PSI的计算
  20. 挑出区域内每一行最小值,并标记颜色

热门文章

  1. apereo cas mysql_Apereo CAS 5.0.X 默认提供的数据库认证的四种方式
  2. java中label数值_java – 如何在JLabel中显示变量值
  3. conda deactivate python3_python3的配置解决
  4. ipa文件怎么安装到iphone_无视签名随意安装 IPA 文件
  5. python3 yield 大文件_详解Python3中yield生成器的用法
  6. netty依赖_高性能:《一遍文章带你看懂 Netty世界》
  7. 【SSL】keytool复制证书
  8. 天津盈克斯机器人科技_柔性视觉选料 机器人摆盘 柔性振动盘
  9. vue中的props对象
  10. java迷宫队列实现_Creator 迷宫生成: DFS 与 BFS 算法实现