第三课:GDB 常用的调试命令概览
先给出一个常用命令的列表,后面会结合具体的例子详细介绍每个命令的用法。
| 命令名称 | 命令缩写 | 命令说明 |
|---|---|---|
| run | r | 运行一个程序 |
| continue | c | 让暂停的程序继续运行 |
| next | n | 运行到下一行 |
| step | s | 如果有调用函数,进入调用的函数内部,相当于 step into |
| until | u | 运行到指定行停下来 |
| finish | fi | 结束当前调用函数,到上一层函数调用处 |
| return | return | 结束当前调用函数并返回指定值,到上一层函数调用处 |
| jump | j | 将当前程序执行流跳转到指定行或地址 |
| p | 打印变量或寄存器值 | |
| backtrace | bt | 查看当前线程的调用堆栈 |
| frame | f | 切换到当前调用线程的指定堆栈,具体堆栈通过堆栈序号指定 |
| thread | thread | 切换到指定线程 |
| break | b | 添加断点 |
| tbreak | tb | 添加临时断点 |
| delete | del | 删除断点 |
| enable | enable | 启用某个断点 |
| disable | disable | 禁用某个断点 |
| watch | watch | 监视某一个变量或内存地址的值是否发生变化 |
| list | l | 显示源码 |
| info | info | 查看断点 / 线程等信息 |
| ptype | ptype | 查看变量类型 |
| disassemble | dis | 查看汇编代码 |
| set args | 设置程序启动命令行参数 | |
| show args | 查看设置的命令行参数 |
上面只列了一些常见的命令,对于一些不常见的命令(如 file 命令 )就不列举了,不建议刻意记忆这些命令,因为确实有点多,找几个程序代码实际练习一下很快就能记住,至于要不要采用,大家还是根据自己的学习习惯来。当 GDB 输入命令时,对于一个命令可以缩写成什么样子,只需要遵循如下两个规则即可。
- 一个命令缩写时不能出现多个选择,否则 GDB 就不知道对应哪个命令了。举个例子,输入 th,那么 th 对应的命令有 thread 和 thbreak(上表没有列出),这样 GDB 就不知道使用哪个了,需要更具体的输入,GDB 才能识别。
(gdb) th
Ambiguous command "th": thbreak, thread.
- GDB 有些命令虽然也对应多个选择,但是有些命令的简写是有规定的,例如,r 就是命令“run”的简写,虽然输入“r”时,你的本意可能是“return”命令。
总之,如果记不清楚,可以直接使用命令全称,每个命令都是很常见的英文单词,通俗易懂不难记忆。
后面的课程将逐一介绍上面每个命令的使用方法,注意这里不是照本宣科地列出来,而是介绍一些很有用的调试细节和使用技巧,如果还不熟悉 GDB 调试,建议认真阅读下面的课程。
之所以单独列出,一是为了从总体上告诉读者 GDB 调试需要掌握哪些常见的命令,后面的课程会按上面表格中给出的命令逐一来详细讲解;二是给已经熟悉 GDB 部分命令的读者一个导览图,可以跳至不熟悉的命令的相关部分阅读。
第三课:GDB 常用的调试命令概览的更多相关文章
- 第03课:GDB常用的调试命令概览
先给出一个常用命令的列表,后面结合具体的例子详细介绍每个命令的用法. 命令名称 命令缩写 命令说明 run r 运行一个程序 continue c 让暂停的程序继续运行 next n 运行到下 ...
- gdb常用的调试命令
首先将源代码编译.链接生成debug版本的可执行文件,然后通过‘gdb debug版本的可执行文件名’进入调试模式. a) 单进程.单线程基础调试命令 l 显示main函数所在的文件的源代码 ...
- 【第三课】常用的Linux命令(学习笔记)
4月8日 学习笔记打卡
- gdb对应vc调试命令
gdb vc调试对照表: 实现功能 vc gdb 修改后编译 f7 ma ...
- gdb常用命令及使用gdb调试多进程多线程程序
一.常用普通调试命令 1.简单介绍GDB 介绍: gdb是Linux环境下的代码调试⼯具.使⽤:需要在源代码⽣成的时候加上 -g 选项.开始使⽤: gdb binFile退出: ctrl + d 或 ...
- gdb常用命令及gdb调试多进程/线程程序&coredump
一.常用普通调试命令 1.简单介绍GDB 介绍: gdb是Linux环境下的代码调试⼯具.使⽤:需要在源代码⽣成的时候加上 -g 选项.开始使⽤: gdb binFile退出: ctrl + d 或 ...
- C 调试 gdb常用命令
gdb常用命令: [root@redhat home]#gdb 调试文件:启动gdb (gdb) l :(字母l)从第一行开始列出源码 (gdb) break n :在第n行处设置断点 (gdb) b ...
- GDB常用命令使用说明(一)
本文由霸气的菠萝原创,转载请注明出处:http://www.cnblogs.com/xsln/p/gdb_instructions1.html 全部关于gdb的文章索引请点这里 GDB(GNU Deb ...
- 【转】 GDB 常用调试方法
一.多线程调试 多线程调试可能是问得最多的.其实,重要就是下面几个命令: info thread 查看当前进程的线程. thread <ID> 切换调试的线程为指定ID的线程. break ...
随机推荐
- 自学linux——11.shell入门
shell 基础 1.shell介绍(内置脚本) 程序开发的效率非常高,依赖于功能强大的命令可以迅速地完成开发任务(批处理) 语法简单,代码写起来比较轻松,简单易学 (1)什么是shell shell ...
- Oracle中使用虚拟表DUAL或XMLTABLE返回顺序数列
在Oracle中使用虚拟表DUAL或XMLTABLE返回顺序数列 使用DUAL表和CONNECT BY LEVEL的特殊用法,返回一个1-10的顺序数列,示例代码如下: SELECT LEVEL FR ...
- JavaScript关于返回数据类型一个小小的笔记
Javascript关于返回数据类型的一个小笔记 javascript数据类型有两种. 一种是基本数据类型:String.Number.Boolean.Symbol.Underfine.Null 一种 ...
- C51—模拟IIC总线实现EEPROM存取数据
a - 什么是IIC总线 -什么是EEPROM -IIC总线的通信格式 模块化设计注解 整体代码 - 什么是IIC总线 IIC总线是同步通信的一种特殊形式,具有接线口少.控制简单.器件封装形式小.通信 ...
- 题解 park/chase
传送门 这题考试的时候觉得时间复杂度假了,\(n \geqslant 1000\)的部分直接瞎写了个特殊性质上去,结果假的时间复杂度能有60pts-- 比较大的数组无论如何不要直接全部memset!如 ...
- C#协作试取消线程
https://segmentfault.com/q/1010000017109927using System; using System.Collections.Generic; using Sys ...
- springCloud-Hystrix服务监控Dashboard
1.Hystrix服务监控Dashboard 介绍 Hystrix服务监控Dashboard仪表盘 在实际生产中,成千上万的服务,我们怎么知道提供服务的高可用情况,即服务的成功失败超时等相关情况; H ...
- C#基础知识---装箱与拆箱
一.定义 装箱:将值类型转化为引用类型,装箱一般会在堆上分配一块内存,用于存储要转换的值. 拆箱:将引用类型转化为值类型 注:.NET 2.0 引入的泛型其实在很大的程度上解决了装拆箱产生的类型转换问 ...
- c# 对 struct为什么不能继承类和结构的思考
1.类.结构在使用的时候可以不调用构造函数,如果能够继承类,这种情况下不能够初始化基类,因为不执行构造函数 2.结构.所有的结构类型都默认是 sealed,通过 反汇编可以看到 ,这就阻止了结构被继 ...
- springboot如何使用事物注解方式
1.在启动类Application中添加注解@EnableTransactionManagement import tk.mybatis.spring.annotation.MapperScan; i ...