查看gdb的版本号 (1)rpm -q gdb 会显示是否安装gdb及版本号 (2)gdb --version也可以

breakpoint b main; b 20; 设置断点
breakpoint if break 函数名、编号 if xxxx 在xxx的情况下设置的断点才生效 (xxx 例如:变量= 3)
cd cd /home/yongchao/ 改变当前工作目录
clear 光标在正要执行的break点的行,然后打clear 删除停止处的断点 (删除当前光标所在行的断点: 光标所在行->当前要执行的行)
info b info b 查看所有的断点
continue continue 从断点开始继续执行
enable enable breakpoint 编号 使得某个断点生效
disable disable breakpoint 编号 使得某个断点失效
delete delete 断点号 删除某个断点
delete delete 删除所有断点
display display 变量、表达式 程序停止时显示变量或者表达式的值(一直显示,直到取消显示)
info display info display 显示display的变量编号
undisplay undisplay 编号 取消某个编号一直显示
step s 跳入函数
until until 直接执行到函数最后 或者跳出一个循环
finish finish 如果已经进入了某个函数,想要退出该函数返回到它的调用函数中
shell shell  linux命令 使你能不离开 gdb 就执行 UNIX shell 命令.
print  print 变量  打印变量
print print 变量 = 2 给变量赋值2
print  print find_entry(1,0) 对程序中函数的调用
print print array[0]@5 (不能是array@5) 查看数组的5个元素
call call find_entry(1,10) 调用和执行函数
pwd pwd 显示当前工作目录
ptype ptyoe 变量 显示类、结构体的结构
whatis whatis  变量/函数类型 显示变量/函数类型的 声明
watch watch 变量 观察变量的值,当有变化的时候停止

在使用watch时步骤如下

1. 使用break在要观察的变量所在处设置断电;

2. 使用run执行,直到断点;

3. 使用watch设置观察点;

4. 使用continue观察设置的观察点是否有变化。

watch counter>15  当counter>15的时候程序终止
delete watch编号 delete watch编号 删除watch点
make make 不退出gdb就可以重新产生可执行文件
x x /3   内存地址 需要显示的内存单元的个数,也就是说从当前地址向后显示几个内存单元的内容,一个内存单元的大小由后面的u定义
x /f    内存地址 f 表示显示的格式 :

x 按十六进制格式显示变量。

d 按十进制格式显示变量。

u 按十进制格式显示无符号整型。

o 按八进制格式显示变量。

t 按二进制格式显示变量。

a 按十六进制格式显示变量。

i 指令地址格式

c 按字符格式显示变量。

f 按浮点数格式显示变量。

x /u   内存地址

u表示一个地址单元的长度

b表示单字节,

h表示双字节,

w表示四字节,

g表示八字节

x /3dw   内存地址 打印3个四字节,安装10进制格式打印
where where 使用 where 命令查看程序出错的地方

gdb a.out core

where

查看导致崩溃的原因

l (L小写)   l miscfactory::MiscReaderTestSuit::SetUpTestCase  定位某个类的某个函数   miscfactory是命名空间  MiscReaderTestSuit是类名  SetUpTestCase是类的成员函数名
 bt

gdb ./xxx core-xxx

bt

查看错误堆栈

 

     
     
     
     
     
     
     
     
     
     
     
     
     
     

linux之GDB常用命令汇总的更多相关文章

  1. linux vi(vim)常用命令汇总(转)

    前言 首先解析一个vim vi是unix/linux下极为普遍的一种文本编辑器,大部分机器上都有vi的各种变种,在不同的机器上常用不同的变种软件,其中vim比较好用也用的比较广泛.vim是Vi Imp ...

  2. linux 性能分析常用命令汇总

    CPU性能分析工具: vmstatpssartimestracepstreetop Memory(内存)性能分析工具:vmstatstracetopipcsipcrmcat /proc/meminfo ...

  3. linux vi(vim)常用命令汇总

    1 查找 /xxx(?xxx) 表示在整篇文档中搜索匹配xxx的字符串, / 表示向下查找, ? 表示向上查找其中xxx可以是正规表达式,关于正规式就不多说了. 一般来说是区分大小写的, 要想不区分大 ...

  4. Linux下离线安装gdb及常用命令汇总

    以redhat6.5虚拟机作为例子,由于工作性质,大部分情况linux的软件安装,是采用离线方式的. 1.离线安装gdb 像gcc.g++或者gdb这种常用的工具软件,一般虚拟机都会安装的,如未安装, ...

  5. 20145222《信息安全系统设计基础》Linux常用命令汇总

    学习Linux时常用命令汇总 通过Ctrl+f键可在该网页搜索到你想要的命令. Linux中命令格式为:command [options] [arguments] //中括号代表是可选的,即有些命令不 ...

  6. Linux GDB常用命令一栏

    Linux GDB 常用命令如下: 1.启动和退出gdb (1)启动:gdb ***:显示一段版权说明: (*** 表示可执行程序名) (2)退出:quit.有的时候输入quit后会出现相关提示:类似 ...

  7. 【Linux】Linux 常用命令汇总

    查看软件xxx安装内容:dpkg -L xxx 查找软件库中的软件:apt-cache search 正则表达式 查找软件库中的软件:aptitude search 软件包 查找文件属于哪个包:dpk ...

  8. Linux vi 编辑器 常用命令行

    1.vi 模式   a) 一般模式: vi 处理文件时,一进入该文件,就是一般模式了.   b) 编辑模式:在一般模式下可以进行删除,复制,粘贴等操作,却无法进行编辑操作.等按下'i,I,o,O,a, ...

  9. Oozie命令行常用命令汇总[转]

    Oozie命令行常用命令汇总 有时候脚本跑多了就不愿意在OozieWeb端去看脚本的运行情况了.还好Oozie提供了很多命令行命令.能通过命令行直接检索自己想看到的脚本信息.在这里简单进行一下总结.一 ...

随机推荐

  1. 大型Web应用运行时 PHP负载均衡指南

    如今,“大型服务器”模式的时代已经过去,我们在运行一些大的Web应用时候,可以使用各种各样的负载均衡技术,这是一种更可行的方法,将使硬件成本降至最低. 过去当运行一个大的web应用时候意味着需要运行一 ...

  2. iOS中二维码的生成与使用(入门篇)

    这里简单总结一下关于二维码的扫描与生成,用的是原生的AVFoundation框架,其实这个框架目前功能还是够用的,不过这里推荐一个二维码扫描的第三方(face++),网址就不贴了,直接度娘就OK,里面 ...

  3. jquerymobile知识点三:弹出层popup

    弹出层popup很简单,主要就是弹出验证,登陆注册,提交信息之类的,下面是我写好的一个demo... <div data-role="popup" id="popu ...

  4. [TypeScript] Configuring TypeScript Which Files to Compile with "Files" and "OutDir"

    This lesson shows how to configure the .tsconfig so you only compile the .ts files you want. It then ...

  5. 百度的android采访分析

    今天早上10分,我接到一个电话采访百度.当然,我说提前.我的病是多么强烈延迟.所以我也没怎么准备,当然,我也看他们的真实水平的思考.在这次审查中! ! ! ! ! !! .! ! ! !.!! !.! ...

  6. JAVA IO之管道流总结大全(转)

    要在文本框中显示控制台输出,我们必须用某种方法“截取”控制台流.换句话说,我们要有一种高效地读取写入到System.out和 System.err 所有内容的方法.如果你熟悉Java的管道流Piped ...

  7. O(1)调度器的时间计算公式与CFS调度器

    http://blog.csdn.net/dog250/article/details/48750809 O(1): 优先级计算: 进程优先级公式:prio=MAX_RT_PRIO+nice+20其中 ...

  8. LabVIEW设计模式系列——移位寄存器

    标准:1.太多移位寄存器会导致连线太多,看起来凌乱,使用簇将变量打包,统一用一个移位寄存器,这样可以减少连线的麻烦2.如果每个变量都使用一个移位寄存器,没有一个名字是很难区分移位寄存器到底属于哪一个变 ...

  9. qt 程序国际化

    http://www.cnblogs.com/hujian/archive/2012/08/10/2631488.html

  10. QT实现多语言切换

    功能需求: 网盘客户端要能够实现多国语言的切换,第一版要支持中.英文的切换.在实现过程中感觉QT对多国语言的支持还是很不错的,制作多语言包很方便,切换的逻辑也很简单.下面就来看一下QT中如何制作多语言 ...