用gdb调试程序时,常常很困惑一些命令的使用,要么是不知道这个命令,要么忘了命令的使用方法。

呵呵,有时迷茫了自己处在什么堆栈的深处,这是使用where命令能够清晰的看到自己的位置,有时在循环太多让人受不了了,可使用u或者finish或者jump命令来跳出去。

gdb常用:

run  启动程序运行

next 单步执行(不到函数内部)

step  单步执行,跟踪到函数内部

finish 继续执行,直到当前函数结束

continue 继续执行,直到下一个断点

jump 9 直接跳到指定行

list  显示源码

l 3,10 显示特定范围的源码 l main显示函数的源码

set listsize 50 修改源码显示行数

break 设置断点

b main设置函数断点

b 9 设置指定行断点

b 将下一行设置为断点

b test if a == 10 设置条件断点

delete 删除断点

d 3 删除指定的断点

condition 修改条件 condition 4 a == 90

info 查看信息

info threads 查看线程信息

info breakpoints 查看断点信息

info locals 显示局部变量

info args    显示函数变量

info registers 显示寄存器数据

thread 2 切换线程

where 查看调用堆栈(bt 或者 info s)

frame 查看当前堆栈帧

frame 8 查看指定堆栈帧信息

info frame 查看当前堆栈帧更详细的信息

print a 打印变量信息

print/x a 十六进制输出变量信息

print a + b 可以进行表达式计算

print $eax 显示某个寄存器的数据

x/nfu 0×300098  显示指定地址的内存数据

n 显示内存单位,长度

f 格式(除了 print 格式外,还有 字符串s 和 汇编 i)

u 内存单位(b: 1字节; h: 2字节; w: 4字节; g: 8字节)

set vairiable a = 100 可以修改变量的值

commands 指定到了特定断点后执行的命令序列

whatis buf  显示变量的类型

dump memory 输出文件名 内存起始地址  内存终止地址

restore  文件名 binary  起始位置

watch buf buf的值一旦改变,会触发watchpoint

奇淫技巧:

cat ~/.gbinit  gdb会从这个文件读取配置

cat ~/.gdb_history

呵呵,对于gdb时想要查看长的字符串老是显示不全,怎么半呢,gdb参看数组字符串时默认只是显示部分的数据,通过这个命令可以修改:

set print elements 0   默认这里设置是200,设置为0表示没有限制

还有其它一些set命令可以试试:

set print address

set print address on

打开地址输出,当程序显示函数信息时,GDB会显出函数的参数地址。系统默认为打开的

set print object

在C++中,如果一个对象指针指向其派生类,如果打开这个选项,GDB会自动按照虚方法调用的规则显示输出,如果关闭这个选项的话,GDB就不管虚函数表了。这个选项默认是off

show print pretty

查看GDB是如何显示结构体的

set print array

set print array on

打开数组显示,打开后当数组显示时,每个元素占一行,如果不打开的话,每个元素则以逗号分隔。这个选项默认是关闭的

set print null-stop

如果打开了这个选项,那么当显示字符串时,遇到结束符则停止显示。这个选项默认为off

set print pretty on

如果打开printf pretty这个选项,那么当GDB显示结构体时会比较漂亮

set print union

设置显示结构体时,是否显式其内的联合体数据。例如有以下数据结构

p string+n显示偏移n后的字符串内容,这个使用起来也是比较方便的

linux gdb打印内存命令,linux下gdb常用的调试命令--by流氓兔斯基相关推荐

  1. linux常用调试,linux下gdb常用的调试命令

    用gdb调试程序时,常常很困惑一些命令的使用,要么是不知道这个命令,要么忘了命令的使用方法.接下来是小编为大家收集的linux下gdb常用的调试命令,希望能帮到大家. linux下gdb常用的调试命令 ...

  2. 【Linux】gdb常用的调试命令

    gdb 常用的调试命令 l 显示代码 b +行号 加断点 info break 显示断点信息 delete 删除断点 r 启动程序 n 单步执行,下一步 c 继续执行 s 进入函数 finish 跳出 ...

  3. Linux终端命令行下的常用快捷键使用

    Linux终端命令行下的常用快捷键 文章目录: ***`下面我只介绍常用的命令,其他的用的几乎很少,常用自然就是总会用的到的,而且用处比较大的,可以提高工作效率的,下面我亲自测试这些命令都是亲测可行的 ...

  4. linux 网络冲浪,命令行下的网络冲浪工具命令行浏览器介绍

    Linux命令行是强大的工具,命令行是我们的日常工作,命令行更是我们日常生活.之前虫虫给大家写过一些命令的的介绍,命令行的工具,命令行下的开发.实际上命令行也是我们不可或缺的生活.本文我们来介绍一下命 ...

  5. Linux Tomcat安装,Linux配置Tomcat,Linux Tomcat修改内存,Linux tomcat修改端口

    Linux Tomcat安装,Linux配置Tomcat,Linux Tomcat修改内存,Linux tomcat修改端口 >>>>>>>>>& ...

  6. linux常用命令(2)常用系统工作命令

    linux常用命令(2)常用系统工作命令 echo命令 作用:在终端输出字符串或变量提取后的值 格式:echo[字符串|$变量] 示例: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直 ...

  7. DOS或命令行下查看进程,结束进程命令

    DOS或命令行下查看进程,结束进程命令  XP中和进程有关的命令: 在system32目录中,dir task* 会看到如下几个文件: +------------------------------+ ...

  8. 深入理解:scp,rsync,sftp,xsync等命令的基本使用方法,以及cmd命令窗口下进行相关的ssh命令操作

    深入理解:scp,rsync,sftp,xsync等命令的基本使用方法,以及cmd命令窗口下进行相关的ssh命令操作 一·scp命令使用方法:参考链接 二·rsync命令使用方法:参考链接 三·xsy ...

  9. linux查看设备内存代码,Linux下内存查看命令(示例代码)

    在Linux下面,我们常用top命令来查看系统进程,top也能显示系统内存.我们常用的Linux下查看内容的专用工具是free命令. Linux下内存查看命令free详解: 在Linux下查看内存我们 ...

  10. linux安装系统内存检测,Ubuntu下安装内存检测工具Valgrind

    Ubuntu下安装Valgrind很简单,直接从ubuntu软件中心下载安装,并且还会提供一个简单的图形界面..当然,你也可以在命令行中使用. Valgrind实际上是一个工具集,包含多个调试工具,如 ...

最新文章

  1. Asp.Net MVC3 简单入门详解过滤器Filter
  2. Cocos2d-x项目移植到WP8系列之二:开篇
  3. c语言 lis的nlogn算法,ACM竞赛高级算法讲义.doc
  4. 使用flask的时候遇到的问题及其解答
  5. RandomizedSearchCV 和GridSearchCV
  6. SSL 2311-车厢调度[栈]
  7. Zookeeper知识梳理
  8. 基于node.js+MongoDB+elementui的分页接口以及页面实现
  9. 哪有什么岁月静好,不过是有人替你负重前行
  10. ORACLE之字符集修改(10g)
  11. qt lineedit获取内容_Qt开发中的几个关键知识点,收藏以备参考
  12. 如何识别SQL Server中运行缓慢的查询
  13. RabbitMQ学习总结(一)——基础概念详细介绍
  14. 万兆安全网关选型指南
  15. cpu out of order, 性能优化
  16. R语言 相关性的显著性检验
  17. 科普:智能电话机器人语音识别技术
  18. 微信开放平台注册和添加应用操作指南
  19. 重测序群体遗传进化分析之进化树构建
  20. 微信程序开发小程序交互

热门文章

  1. python逆序输出字符串_python实现对指定输入的字符串逆序输出的方法
  2. js中Enter切换文本框,方便快捷输入
  3. 【信息系统项目管理师】第五章 范围管理思维导图
  4. 文件权限drwxr-xr-x
  5. ftp管理软件,分享8款ftp管理软件
  6. Python变量及标识符
  7. 视频去水印哪个好用,怎么一键去掉水印
  8. 【JavaWeb】解决cookie跨域访问
  9. 后端开发之接口幂等性设计
  10. iOS开发的知名大牛博客小汇