【C语言】代码BUG排查方式

embedded/2024/12/28 16:14:05/

【C语言】代码BUG排查方式


文章目录

    • @[TOC](文章目录)
  • 前言
  • 一、BUG复现
  • 二、printf
  • 三、仿真器断点调试
    • 1.清除所有断点
    • 2.进入调试模式
    • 3.打断点,执行
  • 四、参考资料
  • 总结

前言

使用工具:
1.ARM仿真器/J-OBV2仿真器


提示:以下是本篇文章正文内容,下面案例可供参考

一、BUG复现

当测试工程师或客户输入BUG后,核对代码版本,核对测试LOG,有问题可以多复现,确保百分百复现问题

二、printf

代码执行路径,编译一次,可以看出代码都在哪里执行

三、仿真器断点调试

DEBUG断点

1.清除所有断点

在这里插入图片描述

2.进入调试模式

在调试模式中,黄色标志表示代码执行位置,现在在时钟初始化,没有继续往下运行
因此在while1中的串口打印也就没有执行,数据无法收发
在这里插入图片描述

3.打断点,执行

断点打在58行,代码执行到58行,无法执行59行,无法打印数据
在这里插入图片描述
断点打在59行,代码执行到59行,打印一次数据后停止
在这里插入图片描述
打红色圆点表示断点,
黄色标志表示代码执行到此处
蓝色标志表示查阅代码到此处

四、参考资料

KEIL仿真时使用printf函数打印调试信息
【Keil编译后查看ram和flash大小及占比】
keil 下如何使用printf
printf()输出格式详解(Keil C51 、标准C)
Keil(MDK-ARM)系列教程(八)_在线调试(Ⅰ)
STM32F*/GD32F*在线调试打断点出现 BP could not be set…Probably too many Breakpoints defined?解决办法
“Error: Encountered an improper argument”的解决方法
keil的debug功能

总结

本文仅仅简单介绍了【C语言】代码BUG排查方式,评论区欢迎讨论。


http://www.ppmy.cn/embedded/148376.html

相关文章

c# 不同数据类型转换

namespace Systempublic static class ConvertExtension {public static byte[] ToBinaryByteArray(this byte[] bytes){// 每个字节有 8 位,所以总位数为 bytes.Length * 8byte[] binaryArray new byte[bytes.Length * 8];int index 0;// 遍历每个字节foreach (b…

windows 钉钉缓存路径不能修改 默认C盘解决方案

1.问题背景 windows系统C盘被钉钉缓存占用大量空间,导致C盘存储严重不足;但钉钉不支持修改缓存路径 2.解决方案 为钉钉缓存路径创建软连接到其他目录 3.解决步骤 a.钉钉设置里找到,钉钉缓存路径 C:\Users\admin\AppData\Roaming\DingTalk …

初学stm32 --- 外部中断

目录 STM32 IO 口中断基础知识 相关库函数: 使用 IO 口外部中断的一般步骤 STM32 IO 口中断基础知识 STM32 的每个 IO 都可以作为外部中断的中断输入口。STM32F103 的中断控制器支持 19 个外部中断/事件请求。每个中断设有状态位,每个中断/事件都有独立…

百度飞桨:零基础入门深度学习

目录 前言一、概念:机器学习&深度学习1. 机器学习2. 深度学习 二、实操:波士顿房价预测任务1. 线性回归模型2. 线性回归模型的神经网络结构3. 数据处理4. 模型设计5. 训练配置6. 训练过程6.1. 梯度下降法6.2. 计算梯度6.3. 使用Numpy进行梯度计算6.4…

【服务器】linux服务器管理员查看用户使用内存情况

【服务器】linux服务器管理员查看用户使用硬盘内存情况 1、查看所有硬盘内存使用情况 df -h2、查看硬盘挂载目录下所有用户内存使用情况 du -sh /public/*3、查看某个用户所有文件夹占用硬盘内存情况 du -sh /public/zhangsan/*

宠物用品电子商务系统|Java|SSM|VUE| 前后端分离

【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库可…

STM32-按键扫描配置

问题引入 由于在使用例程中的按键时,发现按键无效,经过Debug发现程序进入按键扫描死循环中。 由于初始按键引脚时,按键引脚上拉,按下为高电平。给的引脚配置为浮空输入(不确定高低电平),导致初…

大语言模型学习工具及资源总结和落地应用

当前,随着人工智能技术的迅猛发展,大语言模型(Large Language Models, LLMs)在各个领域的应用日益广泛。以下是国内外常见的大语言模型工具、已经落地部署的应用以及学习相关的网站和资源的详细介绍。 一、国内外常见的大语言模型…