gdb是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。

当前是虚拟机上的Ubuntu系统;敲Ctrl+Alt+t,打开控制台终端;

which gcc命令,查看gcc的安装目录;    gcc -v命令,查看gcc版本;

命令行输入 vi test.c,回车,进入vi编辑器编辑test.c的代码;进入以后,敲i键,进入vi的插入模式,然后可以输入代码;输入完,敲ESC退出插入模式,再敲冒号,切换到底行模式,此时在编辑器底部出现冒号;在冒号后面输入wq,回车,保存退出;

看一下test.c有了;

然后用gcc命令编译;加上-g参数,这是把调试信息加入到构建出的可执行文件中;构建出可执行文件test;

输入 gdb test,开始进入到test程序的调试;出现 (gdb) 的提示符;

输入 L 命令,可查看源代码;

输入 b 6,在第6行设置一个断点;

如果程序已经执行,输入 continue 或 c,继续执行;

输入 run 执行程序,遇到断点停止;停留在第1个断点,行6处,如下图;

此时可以用 print 变量名,来查看变量的值,目前没有变量;

输入bt命令看一下;backtrace 命令可以在遇到断点或异常而暂停执行时显示栈帧,该命令简写为 bt;

也可以用 info reg 命令,查看寄存器;

输入 step ,执行到下一句;再输入 step,已过了程序尾;

单步执行的意思时根据源代码一行一行地执行。执行源代码中一行的命令为 next ,简写为 n。执行时如果遇到函数调用,想执行到函数内部,使用 step 命令,简写为 p。
如果要逐条执行汇编指令,可以分别使用 nexti 和 stepi 命令。

下回继续;

Linux下调试器GDB的简单使用图解相关推荐

  1. Linux下调试器工作原理

    Linux下调试器工作原理之一-基础篇 介绍关于Linux下的调试器实现的主要组成部分--ptrace系统调用.本文中出现的代码都在32位的Ubuntu系统上开发.请注意,这里出现的代码是同平台紧密相 ...

  2. Day 3 Linux(目录篇 、文件操作篇 、压缩解压相关命令, 编辑器vi 、编译器gcc 、调试器gdb、 makefile工程管理器初学)

    一.目录篇: 1.文件处理命令:cp 英文原意:copy 语法:cp -rp[源文件或目录][目的目录] 源文件可以同时是多个,即同时复制到多个文件 -r 复制目录 -p保留文件属性,比如文件创建时间 ...

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

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

  4. linux下Qt编写串口调试助手,如何在linux下用QT写一个简单的串口调试助手

    如何在linux下用QT写一个简单的串口调试助手 QT5串口类 在QT5以前,编写串口一般使用的是qextserialport类,但在QT5之后有了QT自带的串口类SerialPort(串口基础类)和 ...

  5. Linux 内核调试器 调试指南

    Linux 内核调试器内幕 KDB 入门指南 Hariprasad Nellitheertha (nharipra@in.ibm.com), 软件工程师, IBM 简介: 调试内核问题时,能够跟踪内核 ...

  6. 开源项目-基于Intel VT技术的Linux内核调试器

    本开源项目将硬件虚拟化技术应用在内核调试器上,使内核调试器成为VMM,将操作系统置于虚拟机中运行,即操作系统成为GuestOS,以这样的一种形式进行调试,最主要的好处就是调试器对操作系统完全透明.如下 ...

  7. 基于IntelVt技术的Linux内核调试器 - 2

    4 基于IntelVt技术的Linux内核调试器- 调试器设计与实现(2):调试核心 4.1反汇编引擎 如果说调试框架是一个调试器的灵魂,那么接口与反汇编引擎就是一个调试器的身体.我们在调试过程中是要 ...

  8. linux下调试core dump方式汇总,工作必备技能

    缘起 调试,是开发流程中一个非常重要的环节.每个程序员都应,具备调试代码的能力,尤其对于从事 Linux 下的开发的读者. 从事 linux 下后台开发,有时候会遇到程序突然崩溃的情况,也没有任何日志 ...

  9. linux下Hiredis的安装和简单使用

    linux下Hiredis的安装和简单使用 零.前言 一.hiredis的安装 二.Hiredis的使用 零.前言 redis太火了,虽然现在自己没有使用,说不定有一天会用到,就研究了一些redis的 ...

最新文章

  1. mysql本周函数_MySQL的YEARWEEK函数以及查询本周数据_MySQL
  2. GT Transceiver的复位与初始化(3)TX初始化和复位流程
  3. freebsd php 编译 mysql sql2005_问下:Freebsd下用php连接ms sql server
  4. python输入名字、输出欢迎你_python笔记3-输出输入、字符串格式化
  5. 笔记-高项案例题-2019年上-采购管理
  6. SpringBoot ApplicationListener监听器的使用-监听ApplicationReadyEvent事件
  7. java gzip rest_RestTemplate与Gzip压缩
  8. JavaScript+Css实现的鼠标悬停时动态翻滚的紫色菜单导航
  9. 矢量算法java,矢量线的一种栅格化算法
  10. 手机上有没有学python的软件-哪个手机软件有python题库
  11. 动画中英文对照表(09.24)
  12. mongo数据库去重
  13. python爬虫获取试题(仅提供逻辑和部分代码,不提供完整实例)
  14. python的jieba分词词性标注
  15. python显示文件夹图片_python遍列目录搜索文件夹及子文件夹图片文件
  16. python批量读取文件内容_Python从数据库读取大量数据批量写入文件的方法
  17. Focal Trio 6 Be 3分频监听音箱评测
  18. lightoj1219Mafia
  19. 服务器Linux系统安装 制作CentOS 7.6 U盘启动
  20. 申请coursera助学金模板转载

热门文章

  1. 高等数学第七版-习题解答:总复习3
  2. Tensorflow broadcast 广播机制
  3. linux中ramdisk的使用
  4. python的数值类型和运算符_python的数值类型和运算符
  5. plsql如何连接oracle11g_64位win7 plsql连不上oracle11gr2 64位—plsql连接配置
  6. bugku ctf 杂项 啊哒 writeup || foremost的安装
  7. Python 语法问题-module ‘pip._internal‘ has no attribute ‘pep425tags‘. 原因及解决办法,32位、64位查看pip支持万能方法
  8. CTFshow 命令执行 web66
  9. CTFshow 命令执行 web41
  10. Java数组的基本操作方法整理