巧用断点设置查找bug【debug】

news2024/10/6 6:46:17

默认设置的断点,当代码运行到断点处MCU就会被挂起,从而停在断点处。
但在某些情况下,如调试FCCU时,如果设置断点,MCU停下后将会导致
FCCU 配置WDG超时。或在调试类似电机控制类的应用时,不适当的断点会导
致三相波某相高边和底边同时打开导致短路。这类情况我们可以改变断点的类
型,当代码运行到断点处,MCU不会Halt,可以通过Debugger Console查看
代码是否有运行到断点。

  1. 巧用debug控制台查看断点执行情况

通过Run->Breakpoint Types,选择断点类型为Dynamic_Printf。在 line 101 设
置断点。全速运行,可以看到MCU不会STOP,通过Debugger Console可以
看到代码有运行到Line 101

  1. 条件断点

条件断点是一种可以设置条件属性,满足一定条件才会触发的断点。条件可以
是某个变量被设置为某个值,也可以是外设某个状态位置位,也可以是它们的
形成的逻辑组合

全速运行,可以看到当DelayTimer的值为20的时候,MCU停在了断点处,再 次全速运行,MCU将不会停下来。因为条件不再满足

  1. 数据断点

调试MCU软件时,经常会遇到这类问题,某个全局变量被意外的修改了,由
于软件庞大,调用关系复杂,变量多处访问,在调试这种问题是,通常做法是
不断的放断点,查看变量的值。这种调试方法不是特别的高效。我们可以通过
另外的方式快速定位变量异常赋值的地方。这种方式就是用Watchpoint。
Watchpoint 也被叫做数据断点。可以通过Watchpoint捕获变量被读,或被写
的位置。还可以更进一步通过设置条件,在变量被改为某个具体值的时候暂停
代码运行。

选中想要监视的变量,Run->Toggle Watchpoint, 打开 Watchpoint 属性配置窗口
也可以在Outline,选中变量,然后鼠标右键,在弹出的菜单里选择Toggle
Watchpoint.


这里我们配置捕获变量testVar的写访问,且捕捉testVar被置为0的时候。
配置完后,可以在Breakpoints看到该Watchpoint

全速运行,会看到代码停在了testVar的下一条语句。同时在Console可以看到
Watchpoint 被捕获到。Debugger Console 可以看到调试器抛了一个SIGTRAP
信号,停止了代码的运行。

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

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

相关文章

中科院1区TOP ! 影响因子8.5,稳定检索33年口碑老刊,另附同领域SCI,录用快,手慢无!

【SciencePub学术】今天小编给大家带来了一本计算机类的高分优刊解读,隶属于Elsevier出版社,JCR1区,中科院1区TOP,影响因子高达8.5,领域相符的学者可考虑! Expert Systems With Applications 1 期刊概况 …

代码随想录算法训练营第四十八天| LeetCode198.打家劫舍、213.打家劫舍II、337.打家劫舍III

一、LeetCode198.打家劫舍(线性) 题目链接/代码讲解/视频讲解:https://programmercarl.com/0198.%E6%89%93%E5%AE%B6%E5%8A%AB%E8%88%8D.html 状态:已解决 1.思路 这个题的关键就在于想清楚如何抉择某个房间偷不偷的问题。根据题…

Axure RP 9 for Mac/win:打造极致交互体验的原型设计神器

在数字化浪潮席卷全球的今天,原型设计作为产品开发的关键环节,其重要性不言而喻。Axure RP 9,作为一款专为设计师和开发者打造的原型设计软件,以其出色的交互设计能力和高效的协作体验,赢得了广大用户的青睐。 Axure …

不同语种下的应用该如何测试?

在测试的过程中,我们有时候会遇到不同语种的页面,通常涉及到国际化(Internationalization, i18n)和本地化(Localization, l10n),在测试的过程中如何保障不同语种软件或应用质量,值得…

xgp会员一年多少钱?xgp一个月多少钱?微软商店xgp会员价格指南

xgp是xbox游戏平台。xgp是类似于steam、epic等,拥有丰富游戏资源的平台。该平 台的全称为“XBox Game Pass”,俗称为“西瓜皮”。xgp是会员订阅模式,开启会员后,所有游戏资源都为你开放。pc版的,第一个月10港币&#x…

1688代采系统:解决全球化采购难题的技术创新

跨境寻源通(1688代采系统)是面向全球化采购市场的一项技术创新,它旨在帮助企业更高效、便捷和安全地进行跨境采购。以下是这项服务的几个关键特点: 多语言支持:跨境采购往往面临语言障碍问题,而跨境寻源通…

XxlJob外网访问

Xxl-Job使用外网访问 服务注册中心配置 ### web server.port8088 server.servlet.context-path/xxl-job-admin### actuator management.server.base-path/actuator management.health.mail.enabledfalse### resources spring.mvc.servlet.load-on-startup0 spring.mvc.static…

大功率回馈式直流电子负载箱优点和应用

大功率回馈式直流电子负载箱是先进的电力设备,它能够模拟各种复杂的负载情况,对电源进行测试和校准。这种设备具有许多优点,被广泛应用于各种领域。 大功率回馈式直流电子负载箱具有高精度和高稳定性。它能够精确地模拟各种负载情况&#xff…

CISC和RISC

CISC(Complex Instruction Set Computer)和RISC(Reduced Instruction Set Computer)是两种不同的计算机架构哲学,它们在指令集的设计、性能优化、硬件复杂度以及应用领域上有着根本的区别。 CISC(复杂指令…

皮带机巡检解决方案

在化工行业中、皮带机人工巡检存在的疲劳安全、巡检质量、数据分析等问题,通过以智能巡检机器人为中心的设备生命周期运维管理系统,完成对皮带机的巡检巡逻和排查预警,有效降低人员和设备的安全隐患,更助力企业运维水平和智能化作…

极快!宝藏EI,2-4周录用,接受范围广!

本周投稿推荐 SSCI • 2/4区经管类,2.5-3.0(录用率99%) SCIE(CCF推荐) • 计算机类,2.0-3.0(最快18天录用) SCIE(CCF-C类) • IEEE旗下,1/2…

后端程序员利用 AI 给网站制作专业 favicon

看看你的 Chrome 浏览器顶部的标签页,每个标签页前面有一个小小的图标,这个就是 favicon,如果你将网页保存到收藏夹,前面也会是这个小图标。这个图标有时候就是网站的 Logo,有时候也不太一样。 上面截图中&#xff0c…

leetcode 每日一题目 (树的直径 +DFS的深刻理解)

如下是题目的简单描述: 给你一棵二叉树的根节点 root ,二叉树中节点的值 互不相同 。另给你一个整数 start 。在第 0 分钟,感染 将会从值为 start 的节点开始爆发。 每分钟,如果节点满足以下全部条件,就会被感染&…

代码随想录算法训练营第四十九天| LeetCode121. 买卖股票的最佳时机、122.买卖股票的最佳时机II

一、LeetCode121. 买卖股票的最佳时机 题目链接/文章讲解/视频讲解:https://programmercarl.com/0121.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C%BA.html 状态:已解决 1.思路 学了双指针的同学可能会下…

LeetCode 热题 100 Day06

矩阵相关题型 Leetcode 48. 旋转图像【中等】 题意理解: 将一个矩阵顺时针旋转90度,返回旋转后的矩阵。 要求: 在原地修改,不借助额外的空间 如果可以使用辅助数组来实现转置,则有 matrix_new[i][j]matrix[j][row-i-1]; 解…

【图片格式转换】ICO、JPG、JPEG、PNG图片格式在线免费转换

ICO、JPG、JPEG、PNG图片格式转换 图片格式转换 https://orcc.online/image 支持ICO、JPG、JPEG、PNG等 主页 https://www.orcc.online 其他工具 pdf在线免费转word文档 https://orcc.online/pdf 时间戳转换 https://orcc.online/timestamp Base64 编码解码 https://orcc…

书生·浦语大模型开源体系(四)作业

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢…

流水线运行出错排查难?AI 来帮你

“我的企业有几千条流水线,每次流水线运行出错,都要投入不少的技术人员进去排查,需要花费不少的时间。” 遇到这种情况,怎么解决。在 AI 爆火的今天,AI 如何助力 DevOps 效率提升? 云效与阿里云通义大模型…

MPLS LDP浅析及应用场景举例

一、概念 华为ldp是mpls动态的标签分发、存储、控制协议,工作时在2.5层; 默认为只为32位主机路由且存在于路由表中的地址分标签 名词: MPLS domain LSR:Label Switching Router LER:Label Edge Router LSP:Label Swi…

RK3568 学习笔记 : u-boot 千兆网络无法 ping 通PC问题的解决

前言 开发板型号: 【正点原子】 的 RK3568 开发板 使用 虚拟机 ubuntu 20.04 收到单独 编译 RK3568 u-boot 【问题】u-boot 千兆网络无法ping 通?Linux 下千兆网络正常,说明:开发板硬件正常 u-boot 下网络如果通了,…