gdb使用手册

  • 设置断点和恢复命令
    • 常见命令
    • 高级命令
  • 查看源代码相关命令
  • 设置工作环境相关命令
  • 查看运行数据相关命令
  • gdb core 使用找段错误
gcc -g [option] [file]
gdb 可执行文件

设置断点和恢复命令

1.常见命令

  • l(list):查看载入的文件代码,如:l 10l main
  • b(break):设置断点,如:b 10b main
  • info b:查看断点信息;
  • r(run):从main运行,到断点处暂停;
  • v 行号:从该行号开始运行;
  • p(print) n:查看n值;
  • n(next):单步下行;
  • s(step):单步进入;
  • c(continue):恢复程序的运行,执行下面程序;

2.高级命令

  • disable 点;
  • enable 点;
  • delete 点info编号;
  • tbreak 临时断点(一次);
  • condition 点 <条件>;
  • ignore 点

查看源代码相关命令

  • list(l) <行号>/<函数名>;
  • file [文件名] 加载文件;
  • forword-search 正则表达式;
  • reverse-search 正则表达式;
  • show directories 源文件路径;
  • disassemble 函数名:反汇编;
  • info line 显示加载内存gdb码;

设置工作环境相关命令

  • set args 参数 //main(args)
  • show args
  • path dir 设定程序运行路径
  • show paths 查看程序运行路径
  • set envirnment var[=value] 环境变量
  • show envirnment var/PATH
  • cd dir
  • pwd
  • shell commend

查看运行数据相关命令

  • print(p) 表达式、变量
  • x /<n/f/u> <addr> 查看内存变量内容
    • n:表示显示内存长度(整数)
    • f:表示显示格式
      • d:十进制
      • x:十六进制
      • o:八进制
      • t:二进制
    • u: 表示显示字节数
    • <addr>:变量内存地址
  • display 表达式
    • display /i $pc 显示c和汇编同步
    • x /i $pc 程序计数器

gdb core 使用(找段错误)

  1. 打开core dump
    1. ulimit -c 默认大小为0
    2. ulimit -c size(k)
  2. gcc -g -o 源 目文件
  3. 运行有问题产生的core文件
  4. gdb 可执行文件 core文件

Wu_Being博客声明:本人博客欢迎转载,请标明博客原文和原链接!谢谢!
《gdb使用手册》: http://blog.csdn.net/u014134180/article/details/78309070

如果你看完这篇博文,觉得对你有帮助,并且愿意付赞助费,那么我会更有动力写下去。

时间: 2024-10-17 23:26:29

gdb使用手册的相关文章

gdb命令手册

GDB的命令很多,本文不会全部介绍,仅会介绍一些最常用的.在介绍之前,先介绍GDB中的一个非常有用的功能:补齐功能.它就如同Linux下SHELL中的命令补齐一样.当你输入一个命令的前几个字符,然后输入TAB键,如果没有其它命令的前几个字符与此相同,SHELL将补齐此命令.如果有其它命令的前几个字符与此相同,你会听到一声警告声,再输入TAB键,SHELL将所有前几个字符与此相同的命令全部列出.而GDB中的补齐功能不仅能补齐GDB命令,而且能补齐参数. 本文将先介绍常用的命令,然后结合一个具体的例

MySQL中文参考手册5(安装MySQL上)

mysql|参考|参考手册|中文 MySQL中文参考手册5(安装MySQL上)转载 译者:晏子 [返回][转发] 译者:晏子 (clyan@sohu.com)主页:http://linuxdb.yeah.net4 安装MySQL本章描述怎样获得并安装MySQL:  对于你能从其获得MySQL的站点列表,见4.1 怎样获得MySQL. 要了解支持哪些平台,见4.2 MySQL支持的操作系统. 可获得MySQL的多个版本,以二进制代码和源代码形式分发.为了确定你应该使用的分发的版本和类型,见4.4 

年薪十万美金黑客养成手册,林大夫告诉你如何从小白到白帽子

       零基础如何做黑客?这个话题你应该在知乎看到过很多次. 当然,黑客的分类很多,出于不想见到警察蜀黍的原因,本文探讨的是黑客界比较友好的白帽子.当然,有愿意聊聊的黑帽子,欢迎来跟雷锋网(公众号:雷锋网)编辑探讨人生.你敢来,我敢写. <漏洞战争:软件漏洞分析精要>的作者林大夫是鹅厂安全从业者,他打死不承认自己是枚白帽子,更愿意用"安全从业者"这个称呼来定位自己.不过,从一名大夫(对,你没有看错,我说的是医生)到一名安全从业者,由他来指导一名小白如何成为小白帽,还是

如何写gdb命令脚本

作为UNIX/Linux下使用广泛的调试器,gdb不仅提供了丰富的命令,还引入了对脚本的支持:一种是对已存在的脚本语言支持,比如python,用户可以直接书写python脚本,由gdb调用python解释器执行:另一种是命令脚本(command file),用户可以在脚本中书写gdb已经提供的或者自定义的gdb命令,再由gdb执行.在这篇文章里,我会介绍一下如何写gdb的命令脚本. (一) 自定义命令 gdb支持用户自定义命令,格式是: define commandName statement

《Linux 高级程序设计(第三版)》——2.2 GCC/GDB编译调试工具基础

2.2 GCC/GDB编译调试工具基础 Linux 高级程序设计(第三版) GCC/G++是GNU最优秀的自由软件之一,它主要提供C/C++程序的编译工作.Linux下的C.C++程序开发过程中,一般都采用GCC/G++/GDB工具.将C语言程序编译成一个可执行文件一般都需经过以下4个步骤. (1)预处理(Preprocessing):对源代码文件中的文件包含.宏定义.预编译语句进行分析和替换. (2)编译(Compilation):根据编译器的语法规则,将高级语言转换为以.s为后缀的汇编语言文

“Clang” CFE Internals Manual---中文版---&quot;Clang&quot;C语言前端内部手册

原文地址:http://clang.llvm.org/docs/InternalsManual.html 译者:史宁宁(snsn1984)                                                                                           "Clang"C语言前端内部手册 简介 这个文档描述了比较重要的API中的一部分API,还表述了Clang C语言前端中的一些内部设计想法.这个文档的目的是既把握住高层次

gdb 调试 sysbench

前几天在写这篇文档的时候,发现sysbench对PostgreSQL libpq绑定变量使用的支持并不好.<让 sysbench 支持 PostgreSQL 服务端绑定变量>https://yq.aliyun.com/articles/34870 那么怎样跟踪出错的代码呢?通过gdb跟踪是一种手段,但是sysbench在测试PostgreSQL libpq绑定时立即就退出. 通过pid来跟踪不太恰当,可以使用gdb的run指令来跟踪(之前没有仔细研究过gdb,还好有RDS PG内核团队小鲜肉给

比较全面的gdb调试命令

用GDB调试程序 GDB是一个强大的命令行调试工具.大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本.UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能. 于是UNIX下的软件比Windows下的软件更能有机地结合,各自发挥各自的长处,组合成更为强劲的功能.而Windows下的图形软件基本上是各自为营,互相不能调用,很不利于各种软件的相互集成.在这里并不是要和Win

《深入剖析Nginx》——第2章  跟踪与调试2.1 利用gdb调试

第2章 跟踪与调试 跟踪与调试,不仅是我们解决程序Bug的有力途径,也是帮助我们理解现有代码的有效方法.通过跟踪程序执行的过程,我们可以清楚地了解程序的内部逻辑,对于不明就里的实现细节,调试查看程序内部变量也能更好地帮助我们做出正确的理解.本章将介绍一些跟踪与调试程序的方法,除了最基本的 gdb 调试,我还将结合个人经验,介绍一些相对高级的应用技巧. 2.1 利用gdb调试 gdb是Linux下调试程序的常用工具,任何Linux开发工程师初学程序调试时第一个接触到的工具应该就是gdb.关于gdb