嵌入式调试工具之GDB

在这里插入图片描述

在单片机开发中,我们可以通过集成式的IDE 来进行调试,比如 MDK、IAR 等。

GDB 工具是 GNU 项目调试器,基于命令行使用。和其他的调试器一样,可使用 GDB工具单步运行程序、单步执行、跳入/跳出函数、设置断点、查看变量等等,它是 UNIX/LINUX 操作系统下强大的程序调试工具。GDB 支持多种语言,包括 Ada、汇编、C/C++、D、Fortran、GO、Objective-C、OpenCL、Modula-2、Pascal 和 Rust。

GDB 支持在一部机器内运行,而要进行调试的程序是在另一部机器上运行,支持 TCP/IP 协议传输的各种网络,因此可以在在 TCP/IP 网络及协议上再加搭传输 GDB 专有的调试操作通信协议。

GDB 移植与调试步骤

一般交叉编译已经自带了 gdb 和 gdbserver,如果是这类交叉编译可以不用移植。如果交叉编译器自带了 gdb 和 gdbserver 的话只需要将 gdbserver 拷贝到开发板根文件系统的/bin 目录下。

  1. 新建gdbtest.c 文件
arm-linux-gnueabihf-gcc gdbtest.c -o gdbtest -g //编译测试程序,注意-g 选项
  1. 编译完成以后将得到的 gdbtest 可执行文件发送到开发板中。

  2. 一切准备就绪以后就可以使用GDB进行调试了,确保ubuntu和开发板可以进行网络通信。
    在开发板中输入如下命令:

gdbserver 192.168.1.220:2001 gdbtest //启动开发板上的 gdbserver
  1. 接着在ubuntu中输入命令启动gdb工具
arm-linux-gdb gdbtest
  1. 输入如下命令连接到开发板上
target remote 192.168.1.251:2001 //连接到开发板上

常用命令

I命令

列出源码,简写:l。

b命令

设置断点

b main  #在main函数设置断点
b 10 #第十行设置断点

info b

显示断点的状态

c命令

此命令使 GDB 恢复程序的执行,直至断点触发或程序结束

p命令

用于打印变量或者变量地址,简写:p。
设置断点后,可依次打印当前变量 i 的值。

p i

q命令

退出 GDB 模式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/688488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023我患上了AI焦虑

2023我患上了AI焦虑 来自:宝玉 原文链接:https://baoyu.io/blog/ai/i-am-suffering-from-ai-anxiety-in-2023 2023 年对我来说是神奇的一年,我意外的从一个程序员变成了一个 AI 资讯届的“网红”,到年底的时候我在 X 平台的阅读量…

IT行业高含金量证书全解析:开启职业生涯新篇章

在快速发展的IT行业,持续学习和专业认证是提升个人竞争力的重要途径。全球范围内存在着众多的IT认证,它们不仅能够验证你的技术能力,还能在求职和职业晋升中起到关键作用。 本篇博客将深入探讨IT行业中部分高含金量的证书,包括中…

最长子串和回文子串相关的算法题解

这里写目录标题 一、3. 无重复字符的最长子串二、5. 最长回文子串三、647. 回文子串四、516. 最长回文子序列 一、3. 无重复字符的最长子串 中等 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释:…

MyBatis核心配置文件详解

MyBatis核心配置文件详解 一、Environments标签1.Environment标签详解(1)如何创建对应环境的 SqlSessionFactory对象 2.transactionManager标签详解3.dataSource标签详解(1)UNPOOLED(2)POOLED(3…

线性回归-使用ClickHouse机器学习函数

本文字数:5923;估计阅读时间:15 分钟 作者:Ensemble 审校:庄晓东(魏庄) 本文在公众号【ClickHouseInc】首发 这原本是转发的ensemble analytics的文章。 【https://ensembleanalytics.io/blog/l…

Java面试第一站:计算机网络基础知识

该系列会持续更新,关注我,第一时间获取我的最新动态哟 Java面试中,经常会问到跟计算机网络知识相关的考点,有的小伙伴不是很明白。考察网络知识有什么意义? 因为编程的时候,多数的情况下是不用我们来编写 …

春节专题|产业7问:区块链厂商的现在和未来——数字资产厂商

2023转瞬即逝,不同于加密领域沉寂一整年后在年末集中爆发,对于我国的区块链厂商而言,稳中求胜才是关键词,在平稳发展的基调下,产业洗牌也悄无声息的到来。 从产业总体而言,在经过了接近3年的快速发展后&…

【鸿蒙手机】获取UDID,并添加签名认证

一、打开开发者模式 1、手机型号华为nova 10 pro , HarmonyOS版本 4.0,路径:设置-> 关于本机-> 多次连续点击”软件版本“ 这一行,一般是是5到7次(我是点击了5次),第一次会弹出输入密码,验…

SPSSAU【文本分析】|文本情感

文本情感分析 文本分析模块中,SPSSAU共提供两种方式的情感分析,分别是按词情感分析和按行情感分析。按词情感分析是指针对提取的关键词进行情感分析,并且进行可视化展示;按行情感分析是指针对分析的原始数据以‘行’为单位进行情…

安装cockpit

1、下载cockpit yum -y install cockpit 下载相关环境 yum install qemu-kvm libvirt libvirt-daemon virt-install virt-manager libvirt-dbus 2、启动libvirtd systemctl start libvirtd.service systemctl enable libvirtd.service 3、设置开机自启动 systemctl enabl…

2022长安杯复现

案件情况 某地警方接到受害人报案称其在某虚拟币交易网站遭遇诈骗,该网站号称使用“USTD 币”购买所谓的“HT 币”,受害人充 值后不但“HT 币”无法提现、交易,而且手机还被恶意软件锁定 勒索。警方根据受害人提供的虚拟币交易网站调取了对应…

【开源】JAVA+Vue.js实现农村物流配送系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统登录、注册界面2.2 系统功能2.2.1 快递信息管理:2.2.2 位置信息管理:2.2.3 配送人员分配:2.2.4 路线规划:2.2.5 个人中心:2.2.6 退换快递处理:…

【c++】STL之stack和queue详解

> 作者简介:დ旧言~,目前大二,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:掌握stack和queue库,了解deque库 >…

N叉树的前序遍历

1.题目 这道题是2024-2-18的签到题,题目难度为简单。 考察的知识点为DFS算法(树的前序遍历)。 题目链接:N叉树的前序遍历 给定一个 n 叉树的根节点 root ,返回 其节点值的 前序遍历 。 n 叉树 在输入中按层序遍历…

Anaconda虚拟环境管理:指令总结!

哈喽大家好,我是chowley,这次来记录一个经典问题——python虚拟环境咋配? 当我们需要在同一台机器上同时运行多个项目时,经常会遇到Python环境不兼容的问题。比如,一个项目需要Python 2.7,而另一个项目需要…

关于Spring Boot应用系统避免因为日切(日期切换)导致请求结果变更的一种解决方案

一、前言 在系统开发过程中,有些业务功能面临日切(日期切换)问题,比如结息跑批问题,在当前工作日临近24点的时候触发结息,实际交易时间我们预期的是当前时间,但是由于业务执行耗时,…

Pulsar-架构与设计

Pulsar架构与设计 一、背景和起源二、框架概述1.设计特点2.框架适用场景 三、架构图1.Broker2.持久化存储(Persistent storage)3.Pulsar元数据(Metadata store) 四、功能特性1.消息顺序性2.消息回溯3.消息去重4.消息重投递5.消息重…

5、Linux 常用指令

一、帮助指令 1.man 指令 语法 man [命令或配置文件] //功能描述:获得帮助手册上的信息查看 ls 命令的帮助信息 man ls信息作用NAME命令名称SYNOPSIS如何使用命令DESCRIPTION描述命令SEE ALSO相关的手册 2.help 指令 语法 help [命令] //功能描述:获得…

神经网络代码实现

目录 神经网络整体框架 核心计算步骤 参数初始化 矩阵拉伸与还原 前向传播 损失函数定义 反向传播 全部迭代更新完成 数字识别实战 神经网络整体框架 核心计算步骤 参数初始化 # 定义初始化函数 normalize_data是否需要标准化def __init__(self,data,labels,layers,…

Java实现Dfs算法(基本讲解)

目录 一、Dfs算法的概念 二、Dfs算法的设计步骤 三、Dfs算法模板 四、Dfs算法经典例题 (1)全排列 (2)N皇后 一、Dfs算法的概念 Depth First Search 即 DFS,意为深度优先搜索,是所有的搜索手段之一。它…