文章目录

  • 前言
  • 一、gdb的常用命令

前言


一、gdb的常用命令

  Linux包含了一个叫gdb的调试程序。gdb可以用来调试C和C++程序。在程序编译时用 -g 选项可打开调试选项。
  常见调试步骤如下:

gcc -o filename.o -Wall filename.c -g    //进入调试用gcc -o fn.o fn.c -g
gdbfilename.o       //进入调试
l                   //显示代码(list)
b 4                 //在第4行设置断点
r                   //运行
n                   //下一步不进入函数
s                   //单步进入函数
pI                  //打印变量I
c                   //运行到最后
q                   //退出

  gdb的常用命令:

命令格式 含义
set args 运行时的参数 指定运行时的参数,如set args 2
show args 查看设置好的运行参数
path dir 设定程序的运行路径
show paths 查看程序的运行路径
set environment var [=vahue] 设置环境变量
show environment [var] 查看环境变量
cd dir 进入到dir目录,相当于shell中的cd命令
p | wd 显示当前工作目录
shell command 运行shell的command命令
info b 查看所设断点
break [文件名:] 行号或函数名<条件表达式> 设置断点
tbreak [文件名:] 行号或函数名<条件表达式> 设置临时断点,到达后被自动删除
delete [断点号] 删除指定断点,其断点号为"info b"中的第一栏。若默认断点号则删除所有断点
disable [断点号] 停止指定断点,使用"info b"仍能查看此断点。若默认断点号则停止所有断点
enable [断点号] 激活指定断点,即激活被disable停止的断点
condition [断点号] <条件表达式> 修改对应断点的条件
ignore [断点号] <num> 在程序执行中,忽略对应断点num次
Step 单步恢复程序运行,且进入函数调用
Next 单步恢复程序运行,但不进入函数调用
Finish 运行程序,直到当前函数完成返回
c 继续执行函数,直到函数结束或遇到新的断点
list <行号> | <函数名> 查看指定位置代码
file [文件名] 加载指定文件
forward -search 正则表达式 源代码前向搜索
reverse -search 正则表达式 源代码后向搜索
dir dir 停止路径名
show directories 显示定义了的源文件搜索路径
info line 显示加载到gdb内存中的代码
print 表达式 | 变量 查看程序运行时对应表达式和变量的值
x <n/f/u> 查看内存变量内容。n为整数,表示显示内存的长度;f表示显示的格式;u表示从当前地址往后请求显示的字节数
display 表达式 设定在单步运行或其他情况中,自动显示的对应表达式的内容
backtrace 查看当前栈的情况,即可以查到调用哪些函数尚未返回

  按Tab键补齐命令,用光标键上下翻动历史命令,用help up看帮助。

嵌入式Linux系统编程学习之七gdb调试器相关推荐

  1. 【Linux系统编程学习】 GDB调试器的简单使用

    此为牛客网Linux C++课程 1.13&1.14&1.15&1.16 的课程笔记. 0. GDB简介 1. 准备工作 想要使用gdb调试,首先需要用gcc的-g参数生成可执 ...

  2. 嵌入式Linux系统编程学习之二常用命令

    嵌入式Linux系统编程学习之二常用命令 文章目录 嵌入式Linux系统编程学习之二常用命令 前言 一.常用命令 1.su(用户切换) 2.useradd(添加用户) 3.passwd(修改密码) 4 ...

  3. 嵌入式Linux系统编程学习之一目录结构

    嵌入式Linux系统编程学习之一目录结构 文章目录 嵌入式Linux系统编程学习之一目录结构 前言 一.Linux目录结构 前言 Linux目录结构 一.Linux目录结构 /bin:存放Linux的 ...

  4. 嵌入式Linux系统编程学习之九基于文件描述符的文件操作

    文章目录 前言 一.文件描述符 二.打开.创建和关闭文件 三.读写文件 四.改变文件大小 五.文件定位 六.原子操作 七.进一步理解文件描述符 八.文件描述符的复制 九.文件的锁定 十.获取文件信息 ...

  5. 嵌入式Linux系统编程学习之三vi编辑器

    文章目录 前言 一.插入文本 二.删除与修改 三.光标的移动 四.查找与替换 五.块操作 六.结束编辑 前言 在Linux下编程,使用编辑器vi(vim).gedit或Emacs,编译链接器gcc,调 ...

  6. 嵌入式Linux系统编程学习之五gcc/g++编译器

    文章目录 前言 一.gcc/g++编译过程 二.静态库和动态库 三.gcc警告和优化选项 1.gcc警告 2.gcc优化选项 前言   对于.c格式的C文件,可以采用gcc或g++编译,对于.cc.. ...

  7. 嵌入式Linux系统编程学习之八基于文件指针的文件操作

    文章目录 前言 一.文件的创建.打开与关闭 二.读写文件 三.文件定位 四.标准输入/输出流 五.目录操作 前言   对文件进行操作有打开文件.关闭文件.读写文件.   文件指针:每打开一个文件,就返 ...

  8. 嵌入式Linux系统编程学习之三十三网络相关概念

    文章目录 一.网络相关名词的概念 1.套接口 2.端口号 3.IP 地址 二.Socket 概念 三.Socket 类型 四.Socket 的信息数据结构 五.数据存储优先顺序的转换 六.地址转格式转 ...

  9. 嵌入式Linux系统编程学习之十二守护进程

    文章目录 前言 一.守护进程的特性 二.daemon 进程的编程规则 1.创建子进程,父进程退出 2.在子进程中创建新会话 前言   daemon 运行在后台,也称作"后台服务进程" ...

最新文章

  1. python小屋_Python小屋——Python语言基础(三)
  2. iis同时运行asp和php,服务器IIS同时支持ASP和PHP
  3. 7-10 石子合并 (10 分)
  4. jzoj6275-[NOIP提高组模拟1]小L的数列【矩阵乘法,欧拉定理】
  5. @hot热加载修饰器导致static静态属性丢失(已解决)
  6. 全球顶尖科学杂志:阿里AI语音技术超越谷歌,可读懂人类潜藏意图
  7. 【C语言】矩阵乘法(二维数组)
  8. 全球研发投入榜:中国第二逼近美国,以色列最下血本 | 联合国数据
  9. koa2后端和php后端,vue+koa2+mongo前后端分离restful,配置和部署到云
  10. php 运行thinkphp,thinkPHP cli命令行运行PHP代码
  11. ExtJs 4.x MVC 架构
  12. 中科大图形学暑期课程资料
  13. SQLite 之 C#版 System.Data.SQLite 使用
  14. 优秀课程案例:使用Scratch制作水果忍者游戏!
  15. 桔梗载药上浮 柴胡升于左 升麻生于右
  16. 第七章:Java基础数据类型-整数类型
  17. 【Python】【pygame】更逼真的星星、连绵细雨
  18. 乐学Python作业题
  19. 美团:踩雷好几年,才总结出的数据治理避坑攻略
  20. Linux中常用命令

热门文章

  1. 聚类效果评价——Silhouette Coefficient(轮廓系数)——内部评估标准(1)
  2. vant 上传附件后回显_Vue + VantUI Uploader 上传组件, 实现上传功能, 但 手机实时上传照片只回显, 上传不上去 。...
  3. uniapp 子组件 props拿不到数据_谈一谈使用 webpack 开发时,Vue 组件之间的数据传递...
  4. bz2解压命令_Java压缩技术 - tar.bz2解压缩
  5. c++去除图片上的文字_图片文字修改去除方法
  6. kubernetes 磁盘、PV、PVC
  7. python学习day07-encode和decode
  8. [教程]Tensorflow + win10 + CPU + Python3.6+ 安装教程
  9. Codeforces.700E.Cool Slogans(后缀自动机 线段树合并 DP)
  10. git使用笔记(一)入门