目录:

         1.gdb进入和退出

         2.发布程序的两种方式Debug和Release

         3.  -g  命令

         4.gdb调试过程

                        1.将程序跑起来     r(run)

                        2.查看代码   l(list)  

                        3.打断点

                        4.打了断点,开始逐语句,逐过程调试

                        5.如何在调试过程查看监视局部变量

                        6.确定这个函数没有问题了,退出这个函数

                        7.退出某个函数,进入下一个断点

                        8.删断点和断点的管理

                        9.修改某一变量的值

-----------------------------------------------------------------------------------------------------------------------------

1.gdb进入和退出

进入  : gdb 跟 可执行文件

退出  :  q

2.发布程序的两种方式Debug和Release

3.     -g   命令

我们现在知道了我们  gcc 生成的可执行程序是release版本是不包含调试信息的

那么我们该怎样让gcc生成的可执行层序是  Degug版本的呢

 gdb调试程序,必须是Debug方式

------------------------------------------------------------------------------------------------------------------------------

 4.gdb调试过程

1.将程序在gdb下跑起来    r(run)

2.查看代码     l

3.打断点      b  跟 指定行号(也可以根据函数名打)

查看我们打的断点   info   b

那么我们根据函数名打断点,又是怎么打的呢???

4.打了断点,开始逐语句,逐过程调试

1.让程序跑起来,在有断点的地方停下来

我们目前所在的是16行但我们想进入sumTopTop函数内的话,我们需要先逐过程调试,到17行,在逐语句调试进入到函数内容

逐过程    -n

逐语句    -s

5.如何在调试过程查看监视局部变量

display  跟要查看的变量

-p    或  P  都可以仅查看变量的值一次

删除我们的长显示的变量

undisplay 跟序号

6.确定这个函数没有问题了,退出这个函数

7.退出某个函数,进入下一个断点

但是我们调试过程中,进入17行的函数时,后悔了,想直接从这个函数跳出来,并同时跳到下一个断点位置

-c

总结    finish      和    continue

以上的两种方法都可以帮助我们快速的省略中间代码执行过程, 快速到达我们想调试的位置。

我们也还有另一种方法  ----也可以快速到达我们想调试的位置

until   跟 行数

until 可以跳到这个函数内的某一个行(记住until只能在一个函数内跳转,不能跳转出这个函数)

8. 删断点和断点的管理

d 跟断点的编号,删除断点

但我们不想使用这个断点,但又不想删这个断点呢???禁用这个断点

disable   跟 断点序号

enable 跟 断定序号    让这个断点生效

9.修改某一变量的值

set var  跟

linux调试器 -gbd使用相关推荐

  1. linux的静态编译elf无法调试,[翻译]自己动手编写一个Linux调试器系列之4 ELF文件格式与DWARF调试格式 by lantie@15PB...

    自己动手编写一个Linux调试器系列之4 ELF文件格式与DWARF调试格式 by lantie@15PB 在上一节中,你已经听说了DWARF调试格式,它是程序的调试信息,是一种可以更好理解源码的方式 ...

  2. 【Linux】Linux调试器--gdb详解

    Linux环境基础开发工具使用(二) 一.Linux调试器-gdb使用 1.背景 2.使用 二.Linux项目自动化构建工具-make/Makefile 1.背景 2.依赖关系和依赖方法 3.原理 4 ...

  3. 开发一个 Linux 调试器(四):Elves 和 dwarves

    https://linux.cn/article-8719-1.html 到目前为止,你已经偶尔听到了关于 dwarves.调试信息.一种无需解析就可以理解源码方式.今天我们会详细介绍源码级的调试信息 ...

  4. found dwarf version #039;4#039; linux,开发一个Linux调试器(四):Elves和dwarves

    到目前为止,你已经偶尔听到了关于 dwarves.调试信息.一种无需解析就可以理解源码方式.今天我们会详细介绍源码级的调试信息,作为本指南后面部分使用它的准备. 系列文章索引 随着后面文章的发布,这些 ...

  5. linux如何调试elf程序,开发一个Linux调试器就需要了解ELF和DWARF

    到目前为止,可能你已经听到了关于调试信息或者关于除了解析代码以外的理解源代码的方法的DWARF的只言片语.今天,我们将介绍源代码级的调试信息的细节,以备在该系列的余下部分使用它. ELF和DWARF简 ...

  6. Linux调试器工作原理——基础篇

    英文原文:Eli Bendersky编译:伯乐在线-陈舸 本文是一系列探究调试器工作原理的文章的第一篇.我还不确定这个系列需要包括多少篇文章以及它们所涵盖的主题,但我打算从基础知识开始说起. 关于本文 ...

  7. gdb 的用法(Linux调试器)

    在Linux应用程序开发中,最常用的调试器是gdb,它可以在程序中设置断点.查看变量值.一步一步跟踪程序的执行过程. GDB(GNU symbolic debugger)简单地说就是一个调试工具.它是 ...

  8. Linux调试器-gdb使用

    目录 1. 背景 2. 开始使用 3. 理解 创建需要调试的代码 debug&&release 4 详细调试 list/l 行号 list/l 函数名 r或run break(b) i ...

  9. linux 源码 调试,开发一个Linux调试器(六):源码级逐步执行

    我们计算编写这些函数异常简单的版本,但真正的调试器有 thread plan 的概念,它封装了所有的单步信息.例如,调试器可能有一些复杂的逻辑去决定断点的地位,然后有一些回调函数用于断定单步操作是否完 ...

最新文章

  1. ECMAScript arguments 对象(摘自W3C)
  2. arcengine 将地图文件保存为图片(包括各种图片格式)
  3. 台式电脑如何截屏_买台式电脑如何避免成为被宰羔羊(一)
  4. 开机启动inittab详解
  5. 内联函数 inline
  6. android多媒体学习笔记三___图像合成
  7. 机器学习- 吴恩达Andrew Ng - week3-4 solve overfitting
  8. 模拟电子技术入门书籍教材“宝典”推荐
  9. u盘删不掉Android文件夹,U盘文件删不掉怎么办完全解决教程
  10. Ubuntu中安装VirtualBox
  11. 什么是图床如何搭建图床
  12. Protocol Buffer编译器安装
  13. 计算机音乐谱成都.,抖音成都计算器谱子是什么 抖音成都计算器谱子分享
  14. 如何使用KEIL5快速建立FreeRTOS项目(附建立成功的源代码以及问题解析)
  15. 机器视觉表面缺陷检测综述
  16. sublime 自定义快捷键、宏录制
  17. 虹软人脸识别SDK接入Milvus实现海量人脸快速检索
  18. 美的地产竞得石家庄50亩地块 美的布局开始
  19. html ul 圆点轮播图,用jQuery实现圆点图片轮播效果
  20. 笔记四:tif 转 jpg,支持批量

热门文章

  1. 《PyTorch模型训练实用教程》—学习笔记
  2. SQL Server中identity(自增)的用法
  3. (一) ES6 新特性 ——let与const关键字
  4. 【Vue】双向数据绑定原理 vue2.0 与 vue3.0
  5. 视频教程-美团团购订单系统优化实践-其他
  6. 影像算法解析——JPEG 压缩算法
  7. 计算机英语中级职称题库,2016.2年中级职称计算机考试模拟题库及答案.doc
  8. 家校互动、班级管理系统
  9. (附源码)Springboot+mysql+软件工程课程思政微平台的设计与实现 毕业设计271113
  10. 特征分解,奇异值分解(SVD) 和隐语义模型(LFM)