GDB简单使用

GDB简述
一、程序中加入调试信息:gcc -g -o a.ddebu a.c
二、启动gdb:gdb
三、常用命令
  1.backtrace:显示程序中的当前位置和表示如何到达当前位置的栈跟踪(同义词:where)。
  2.breakpoint:在程序中设置一个断点
  3.cd:改变当前工作目录。
  4.clear:删除刚才停止处的断点。
  5.commands:命中断点时,列出将要执行的命令。
  6.continue:从断点开始继续执行。
  7.delete:删除一个断点或监测点,也可与其他命令一起使用。
  8.display:程序停止时显示变量和表达式。
  9.down:下移栈帧,使得另一个函数成为当前函数。
  10.frame:选择下一条continue命令的帧。
  11.info:显示与该程序有关的各种信息。
  12.info break:显示当前断点清单,包括到达断点处的次数等。
  13.info files:显示被调试文件的详细信息。
  14.info func:显示所有的函数名称。
  15.info local:显示当前函数中的局部变量信息。
  16.info prog:显示被调试程序的执行状态。
  17.info var:显示所有的全局和静态变量名称。
  18.jump:在源程序中的另一点开始运行。
  19.kill:异常终止在gdb控制下运行的程序。
  20.list:列出相应于正在执行的程序的源文件内容
  21.next:执行下一个源程序行,人而执行其整体中的一个函数。
  22.print.显示变量或表达式的值。
  23.pwd:显示当前工作目录。
  24.pype:显示一个数据结构(如一个结构或C++类)的内容.
  25.quit:退出gdb.
  26.reverse-search:在源文件中反向搜索正规表达式。
  27.run:执行该程序。
  28.search:在源文件中搜索正规表达式。
  29.set variable:给变量赋值。
  30.signal:将一个信号发送到正在运行的进程。
  31.step:执行下一个源程序行,必要时进入下一个函数。
  32.undisplay display:命令的反命令,不要显示表达式。
  33.until:结束当前循环。
  34.up:上移栈帧,使另一个函数成为当前函数。
  35.watch:在程序中设置一个监测点(即数据断点);
  36.whatis:显示变量或函数类型。
四、习惯性操作
  1.导入文件:file /test.debug
  2.查看文件:list
  3.加入断点行数:break 6
  4.运行程序:run
  5.运行到第一个断点,step,程序运行一步
  6.显示当前变量的值:pirnt **
  7.退出:q

原文地址:https://www.cnblogs.com/sail/p/9908497.html

时间: 2024-10-31 14:05:16

GDB简单使用的相关文章

gdb简单了解

file filename                         加载指定文件 list  <行号>|<函数名>          显示文件内容(源码) break  fileName:lineNO      <条件>     设断点 break  fileName:funcName <条件>     设断点 info b                                            查断点 delete n 删除指定断点或

GDB 程序调试简单实践

用了好久的GCC/G++ 却一直都没用过GDB调试过程序,有时程序不是很大,一般有错,直接看编译器编译结果就差不多知道错在哪儿了,或者使用codeblocks单步调试,甚至回到windows下面调试,但是总是不太方便,因此有必要看一下GDB调试方法和基本步骤. 下面是一个简单的演示: 首先创建一个有错误的代码,如下: 这个程序很简单,目的是接受用户的输入,并将用户的输入回应输出来. 但是这个程序的第17行有个错误,使用了未初始化的字符指针name,因此编译运行后会出现段错误,如下: 下面利用GD

GDB 调试器使用手冊

使用GDB: 本文描写叙述GDB,GNU的原代码调试器. (这是4.12版1994年一月.GDB版本号4.16) * 文件夹: * 摘要: GDB的摘要 * 实例: 一个使用实例 * 入门: 进入和退出GDB * 命令: GDB 的命令 * 运行: 在GDB下运行程序 * 停止: 暂停和继续运行 * 栈: 检查堆栈 * 原文件: 检查原文件 * 数据: 检查数据 * 语言: 用不同的语言来使用GDB * 符号: 检查符号表 * 更改: 更改运行 * GDB的文件 文件 * 对象 指定调试对象 *

gdb入门

GDB - 简单易上手的新人教程 https://blog.csdn.net/TheBeatles1994/article/details/81055418 博客很短,就不复制一遍了,这里记录一下gdb的命令: 原文地址:https://www.cnblogs.com/exciting/p/10952977.html

gdb调试多线程的简单命令

由于平时的编程当中经常会用到多线程,我想接触过多线程编程的人应该都会清楚多线程如果出了错,调起bug来是有多么麻烦,应为你某个地方出错了,有可能并不是这里的问题而是线程执行到这就切换到其他线程,而出错的是其他线程,我以前使用的办法是给某个线程sleep然后让内核自己调度去执行其他线程.很明显这种方法当有很多线程是并不是很使用,所以我就翻书学了几条调试多线程的简单gdb命令 1.测试所用的代码 1void *thread1(void *arg) 2{ 3 printf("New thread1\n

Linux 下GDB的使用之简单入门

Linux 下程序崩溃.先要生成Core文件方可调试(这里Test为被调试程序) 1.查看Core文件(相当于Windows下的dump)大小,如果为0,则不会生成core文件 ulimit -c 查看core文件大小 ulimit -c filesize 设置大小为filesize ulimit -c unlimited 设置core大小为无限制 2.启动被调试程序 进入到被调试程序目录,输入gdb ./Test  回车 如果被调试程序有参数需设置,则 set args xxxx 回车 3.设

简单gdb的使用

这些东西都是参考<Linux C编程一站式学习>,在看这本书的gdb这块的时候,把这些总结性的东西记录下来方便以后复习,这些东西吧其实在一年前就已经看过了的,但是缺少笔记总是记不住 命令 描述 backtrace(bt) 参考各级函数调用及参数的堆栈信息 finish 一般是配合step使用,当step跳入一个函数的时候,finish后执行到当前函数返回,然后停下来 frame(f) num(int) 选择栈帧 info(i)locals 变量名 查看当前栈帧局部变量的值 list(l) 列出

GDB调式工具的简单调试步骤

程序编译: gcc xx.c -o xx -g //一定要加-g 开始调式: gdb xx //进入调式界面 l:显示文件,默认10行main函数 l+函数名 //显示函数 b:插入断点 b + 行号(main函数) b + 文件名:行号 b + 函数名 r:运行程序 n:单步运行,不进入自定义函数 s:单步运行,进入自定义函数 c:继续执行到下一个断点,没有断点执行到程序结束 p:查看变量 p + i //查看变量i p + 表达式 //查看表达式的值

Makefile和gdb的简单使用

1.为什么要用Makefile进行多个.C文件的编译: (1).一般我们在进行项目开发的时候,会建立工程,下面有许多目录,不同目录下又有许多.C文件,这事就需要联合编译了. (2).我们自己手动编译的话,多个程序文件交织在一起,会出现不同文件资源之间的依赖与被依赖关系.那么在编译的时候就会出现问题:必须先解决被依赖项,在解决依赖项. 在这种情况下,我们进行手动编译的话,将会变得异常困难,首先我们必须记住依赖关系,才能知道编译顺序,其次每一次都要执行非常多的gcc编译命令才能完成最终的编译目标(g