KEIL 断点调试技巧

2023-11-17

实际项目中断点调试起了很大作用,Keil的断点调试功能很强大,除了普通的设置断点运行到断点处,还有单步、跳转。除了这些常规的方法,对于一些疑难杂症,常规方法就有点杯水车薪了。下面我总结下我在工作中常用的几种断点调试技巧。

1、断点位置运行次数设置

例如你想控制进入中断的次数,想查看下第50次进入中断发生的现象,单次点击50次不现实,那如下的功能会提供便利。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

从图中看出第10次进入中断函数时,断点会停在那里(这种方法需要提前设置断点,按图示进入设置项,双击刚才设置的断点,就可以配置count了)。

2、变量匹配(适用于全局变量)

程序代码写多了,变量容易混淆,当你想知道全局变量在哪个地方被读写时,这个功能就用到了(当然尽量别用全局变量,我这里只是举个例子)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

将想要了解的变量写在expression中,我写的是flag2(可以设置读写),当flag2被读写时程序就会停在那里(这个功能不用提前设置断点),变量可设置读写。其中size是所设置变量占用的字节大小, Objects 1 = Bytes 4, flag2是int型,count 可以设置变量第几次被读写然后暂停程序。

3、变量条件匹配(适用于全局变量)

当想让全局变量等于某个固定的数值时程序暂停,这个功能就能用得上了。

在这里插入图片描述
在这里插入图片描述

4、调试串口

用硬件串口在很多方面都会有限制,用仿真串口既不影响程序执行和硬件资源,也不占用程序积时,可以说时明智之举。
在这里插入图片描述
在这里插入图片描述

在command输出了实时断点处信息,类似usart的printf。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

KEIL 断点调试技巧 的相关文章

  • LSPosed 安装教程(LSP框架安装教程)

    1 下载LSPosed模块 CSDN下载 Riru 版 LSPosed Riru Zygisk版 LSPosed Zygisk 或 github下载 LSPosed GitHub 2 打开Magisk 设置 开启 Zygisk 3 打开面具
  • curl在windows的安装和使用

    经常看到别人在用curl命令可以请求各种网络请求在命令行里 看起来挺炫酷的 curl作为一个请求web服务器的命令行工具 玩得好甚至可以代替postman 这里我就是讲一下关于如何安装curl在windows上 毕竟很多时候用的电脑都是公司
  • Amdahl定律

    计算机科学中的一个重要定律 描述 系统中某部件由于采用某种方式使系统性能改进后 整个系统系能的提高与该方式的使用频率或占总的执行时间的比例有关 主要应用 改善 系统瓶颈 性能 Amdahl定律定义了加速比 加速比 采用改进措施后性能 未采用
  • Mac M1安装Homebrew 简单实用

    1 首先创建安装目录 sudo mkdir p opt homebrew 2 将目录属主修改为当前用户 方便直接实用brew install sudo chown R whoami opt homebrew 3 进入 opt文件夹 cd o
  • wsl配置

    文章目录 1 systemd服务开启 2 固定IP 2 1 官网的方案 2 2 通过WSL2的Linux子系统设置静态IP 2 3 其他方案 3 运行 Linux GUI 应用安装 Chrome 浏览器 此文接我放弃了VMware 1 sy
  • .Net/C#: 实现支持断点续传多线程下载的 Http Web 客户端工具类 (C# DIY HttpWebClient)

    选择自 playyuer 的 Blog Net C 实现支持断点续传多线程下载的 Http Web 客户端工具类 C DIY HttpWebClient Reflector 了一下 System Net WebClient 重载或增加了若干
  • IDEA学习(一)——IDEA的安装

    最近IDE从Eclipse转到了IDEA 抽时间熟悉了一下IDEA相关的东西 在此记录一下说不定可以帮到有需要的同学 我们就先从IDEA的安装说起吧 需要说明一点的是IDEA是比较吃内存的 所以在安装IDEA之前最好确认的内存不要太小 最好
  • chevereto 页面设置

    我贴一些图 大家可以根据我的设置来搞 或者你可以自定义喽 如果我设置不对 大家也指正一下 可设置的项目非常多 你可以按我的设置来初始化 如果你有什么不满意 自己微调即可 网站 这里值得一说的 搜索 探索 随机 喜欢 粉丝禁用后 这样访客就看
  • Centos7安装Nessus教程

    本文为学习笔记 仅限学习交流 不得利用 从事危害国家或人民安全 荣誉和利益等活动 请参阅 中华人民共和国网络安全法 Nessus安装包 链接 https pan baidu com s 1FJMu8WMZPSjoqQpes GCng 提取码
  • java单元测试覆盖率(clover+testng)

    1 testng 介绍 TestNG是一个旨在简化各种测试需求的测试框架 从单元测试 将一个类与其他类分开测试 到集成测试 对由多个类 几个程序包甚至几个外部框架组成的整个系统进行测试 开源免费 基于以maven组件的形式 引入项目 需要修
  • docker 安装wiki.js 和wekan

    wiki js https blog csdn net vegas lee article details 122356646 wekan http t zoukankan com caihemm p 14446937 html
  • RabbitMQ的安装和启动——windows版

    本章介绍如何在win10下安装 RabbitMQ 并启动 安装 Erlang 安装 RabbitMQ 启动 RabbitMQ 百度网盘下载 Erlang 和 RabbitMQ Erlang 网盘链接 RabbitMQ 网盘链接 结语 下载R
  • QT实现动态翻译和语言切换

    QT GUI提供语言动态转换机制并辅以相应的工具方便programmer实现界面的多语言实时动态切换功能 实现语言动态切换的方法 一个注意 五个步骤 一个注意 实现QT工程的语言切换功能的一个关键点是所有的字符串都需要tr修饰符 例如 m
  • Fortify 代码扫描安装使用教程

    前言 Fortify 能够提供静态和动态应用程序安全测试技术 以及运行时应用程序监控和保护功能 为实现高效安全监测 Fortify具有源代码安全分析 可精准定位漏洞产生的路径 以及具有1分钟1万行的扫描速度 Fortify SCA 支持丰富
  • iOS系统网络抓包方法

    原文地址 http www cnblogs com ydhliphonedev archive 2011 10 27 2226935 html 在进行iOS开发过程中 经常会遇到各种各样的网络访问问题 以前苦于没有抓包工具 很多网络问题解决
  • IAR 编译异常记录

    问题一 问题描述 WARNING the connected j link is defective proper operation cannot be guaranteed 连接的J Link不良 无法保证正确操作 问题原因 驱动版本与
  • python3.6+wamp配置python脚本环境(Windows)

    最近学到ajax 教程里需要用到wamp 这里就不介绍wamp了 wamp包含了apache服务器 但其默认只支持php脚本 而本人没学过php 所以希望降低学习成本 于是动手修改apache配置文件 网上有很多修改的教程 但我尝试了很多种
  • notepad++突然崩溃,保存的文件没了怎么办

    notepad还是很牛逼的 备份文件 C Users 你当前用户的用户名 AppData Roaming Notepad backup可以恢复
  • vscode开发python环境配置

    前言 vscode作为一款好用的轻量级代码编辑器 不仅支持代码调试 而且还有丰富的插件库 可以说是免费好用 对于初学者来说用来写写python是再合适不过了 下面就推荐几款个人觉得还不错的插件 希望可以帮助大家更好地写代码 安装CPytho
  • 最新国内免费使用GPT-4分享,GPT语音对话,Midjourney绘画

    一 前言 ChatGPT3 5 GPT4 0 GPT语音对话 Midjourney绘画 相信对大家应该不感到陌生吧 简单来说 GPT 4技术比之前的GPT 3 5相对来说更加智能 会根据用户的要求生成多种内容甚至也可以和用户进行创作交流 然

随机推荐

  • gsoap工具生成wsdl接口 注意事项

    wsdl是通过wsdl文件作为不同应用的通信接口 所以如何生成wsdl语言很重要 但是很多时候我们发现自己编写的头文件通过gsoap工具soapcpp2 exe从头文件中无法正常生成对应的wsdl语言 几经寻找 终于发现 通过对应头文件 h
  • 使GDAL库支持中文路径或中文文件名的处理方法

    之前生成的gdal 2 1 1动态库 在通过命令行执行时 遇到有中文路径或中文图像名时 GDALOpen函数不能正确的被调用 如下图 解决方法 1 在所有使用GDALAllRegister 语句后面加上一句CPLSetConfigOptio
  • 万万没想到,曾经以为的 VSCode 专属代码工具,竟然可以这样…

    如果你知道 VSCode 一说起它 你可能第一个想到的就是把它当做一个代码编辑器 而它的界面应该可能大概率是这样的 如果你恰好又是个程序员 那你可能经常会用到它 不管是 Python JS 还是 C 等各种语言对应的文件 都可以用它来进行简
  • Java中使用MultipartFile 接受图片或者文件超过2MB就会出现异常MultipartFile类型不能接受

    解决方法 在配置文件中写入这个配置 然后就可以根据业务在进行限制了
  • 混淆保护需正确命名!看.NET Core代码保护工具.NET Reactor如何规定

    NET Reactor是一个功能强大的代码保护和软件许可系统 适用于为 NET Framework编写的软件 并支持生成 NET程序集的所有语言 NET Reactor迎来了久违的版本更新 进入v6 3 0 0全新时代 支持Blazor保护
  • 大端对齐 和小端对齐

    大端对齐 高内存地址放整数高位 低内存地址放整数低位 例如x86 arm都是采用大端对齐 小端对其 高内存地址放整数低位 低内存地址放整数高位 例如unix大型服务器 转载于 https www cnblogs com Json28 p 1
  • Linux内核文件系统知识大总结

    1 文件系统特点 文件系统要有严格的组织形式 使得文件能够以块为单位进行存储 文件系统中也要有索引区 用来方便查找一个文件分成的多个块都存放在了什么位置 如果文件系统中有的文件是热点文件 近期经常被读取和写入 文件系统应该有缓存层 文件应该
  • crash 工具使用

    1 rd 命令 用法 读取内核虚地址或者内核符号值 默认16进制显示 类型为unsigned long 并且会将值对应的ascii码显示出来 rd lt 内核地址 gt 或 rd lt 内核符号 gt 如果不需要将右边的ascii码显示出来
  • 【AIX 命令学习】lspv -M hdisk1

    lspv M hdisk1查看 hdisk1物理分区与逻辑分区的对应关系 pvname PP PP LVname LP COPY PVname 系统指定的物理卷名称 PP物理卷上的物理分区编号 如果一段连续的物理分区是空闲的 则使用一段PP
  • 计算机网络之7层协议

    7层协议图解 通俗的理解 1 首先物理层解决两个硬件之间怎么通信 具体就是一台发些比特流 然后另一台能收到 物理层的作用 主要定义物理设备标准 如网线的接口类型 光纤的接口类型 各种传输介质的传输速率等 它的主要作用是传输比特流 就是由1
  • el-tabs中使用Echarts警告。Can‘t get DOM width or height. Please check dom.clientWidth and dom.clientHeight

    具体警告 Can t get DOM width or height Please check dom clientWidth and dom clientHeight They should not be 0 For example yo
  • SnowFlake 雪花算法实现以及详解

    背景简介 现在的服务基本是分布式 微服务形式的 而且大数据量也导致分库分表的产生 对于水平分表就需要保证表中 id 的全局唯一性 对于 MySQL 而言 一个表中的主键 id 一般使用自增的方式 但是如果进行水平分表之后 多个表中会生成重复
  • 软件测试基础之软件缺陷处理

    一 什么是缺陷 不满足用户确定需求 影响软件功能实现的问题 故障 缺陷就是人们通常所说的bug ex 一下哪一种选项不属于软件缺陷 A 软件没有实现产品规格说明所要求的功能 B 软件中出现了产品规格说明不应该出现的功能 C 软件实现了产品规
  • 【电路设计】RC振荡器 - 文氏电桥振荡器

    一 文氏电桥振荡器的工作原理 文氏电桥振荡器广泛用于产生几Hz到几百kHz频段范围的可变频率振荡器 主要由两部分构成 具有正反馈作用的RC串并联选频网络 gt 以满足相位平衡条件 具有负反馈作用的同相放大器 gt 以满足振幅平衡条件 其工作
  • Qt中用textEdit发送文本遇到的换行问题

    用textEdit发送文本遇到的换行问题 在开发BLE通讯的过程中遇到了以下问题 在自己写的BLE上位机的输入框textEdit中输入数据 回车换行之后发送 但串口调试助手处接收的数据没有换行 但是在串口调试助手的输入框中输入数据再回车换行
  • Blender使用maya系快捷键

    文章目录 第一步 将config文件夹放入 第二步 将maya快捷键 以及类maya面板放入 空格以及右键的饼面板 第三步 在blender里将mayaKey里的快捷键导入 并选择 第四步 融合blender本身的快捷键 可选 1 从ble
  • 英伟达驱动更新记录_N卡驱动更新软件(NVIDIA GeForce Experience) v3.16.0.122 官方版

    NVIDIA GeForce Experience显卡驱动更新软件可以帮助你检查计算机的geforce驱动程序 并且将其更新到最新的版本 更新显卡驱动有利于更稳定流畅的运行游戏 功能介绍 1 让驱动程序始终处于最新状态 GeForce Ex
  • Docker容器之私有仓库(Harbor)

    创建私有仓库 下载registry镜像 docker pull registry 指定镜像仓库地址 vim etc docker daemon json insecure registries 192 168 159 11 5000 添加此
  • java.lang.NoSuchMethodError: org.springframework.data.redis.core.StringRedisTemplate.delete redis删报错

    java lang NoSuchMethodError org springframework data redis core StringRedisTemplate delete Ljava lang Object V springboo
  • KEIL 断点调试技巧

    实际项目中断点调试起了很大作用 Keil的断点调试功能很强大 除了普通的设置断点运行到断点处 还有单步 跳转 除了这些常规的方法 对于一些疑难杂症 常规方法就有点杯水车薪了 下面我总结下我在工作中常用的几种断点调试技巧 1 断点位置运行次数