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

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


### 文章目录

  • [@TOC(文章目录)](#文章目录 @TOC 前言 一、BUG复现 二、printf 三、仿真器断点调试 1.清除所有断点 2.进入调试模式 3.打断点,执行 四、参考资料 总结)
  • [前言](#文章目录 @TOC 前言 一、BUG复现 二、printf 三、仿真器断点调试 1.清除所有断点 2.进入调试模式 3.打断点,执行 四、参考资料 总结)
  • [一、BUG复现](#文章目录 @TOC 前言 一、BUG复现 二、printf 三、仿真器断点调试 1.清除所有断点 2.进入调试模式 3.打断点,执行 四、参考资料 总结)
  • [二、printf](#文章目录 @TOC 前言 一、BUG复现 二、printf 三、仿真器断点调试 1.清除所有断点 2.进入调试模式 3.打断点,执行 四、参考资料 总结)
  • [三、仿真器断点调试](#文章目录 @TOC 前言 一、BUG复现 二、printf 三、仿真器断点调试 1.清除所有断点 2.进入调试模式 3.打断点,执行 四、参考资料 总结)
  • [1.清除所有断点](#文章目录 @TOC 前言 一、BUG复现 二、printf 三、仿真器断点调试 1.清除所有断点 2.进入调试模式 3.打断点,执行 四、参考资料 总结)
  • [2.进入调试模式](#文章目录 @TOC 前言 一、BUG复现 二、printf 三、仿真器断点调试 1.清除所有断点 2.进入调试模式 3.打断点,执行 四、参考资料 总结)
  • [3.打断点,执行](#文章目录 @TOC 前言 一、BUG复现 二、printf 三、仿真器断点调试 1.清除所有断点 2.进入调试模式 3.打断点,执行 四、参考资料 总结)
  • [四、参考资料](#文章目录 @TOC 前言 一、BUG复现 二、printf 三、仿真器断点调试 1.清除所有断点 2.进入调试模式 3.打断点,执行 四、参考资料 总结)
  • [总结](#文章目录 @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排查方式,评论区欢迎讨论。

相关推荐
Navigator_Z4 小时前
LeetCode //C - 1208. Get Equal Substrings Within Budget
c语言·算法·leetcode
xx~t5 小时前
嵌入式——进程与线程1
linux·c语言·学习·嵌入式·进程与线程
m0_547486665 小时前
《JavaScript核心原理 》全套PPT课件2026
开发语言·javascript·ecmascript
老当益壮梁奶奶5 小时前
Linux软件编程学习笔记(七):线程分离与线程间通信详解
linux·c语言·c++·笔记·学习
MC皮蛋侠客5 小时前
Tauri 2.x 系列(五):调用系统 API——官方插件、Rust crate 与原生能力
开发语言·后端·rust
布莱克6056 小时前
软中断和硬中断的区别
开发语言·操作系统
whcyhhh7 小时前
头歌实践教学平台:数据科学与大数据技术导论(十二)
大数据·开发语言·python·数据清洗
lzhdim7 小时前
13、JavaScript事件循环机制 - JavaScript学习系列文章
开发语言·前端·javascript·学习·ecmascript
zbyyd8 小时前
Linux 多线程:互斥锁 & 信号量
linux·c语言·开发语言·网络
wuyk5558 小时前
从零吃透Modbus通信|第3章:STM32 Modbus RTU主机
服务器·开发语言·网络·数据结构·stm32·单片机·嵌入式硬件