[其他ST产品] 不知道哪个函数在某个内存地址写入数据

[复制链接]
380|68
芯路例程 发表于 2026-5-25 07:47 | 显示全部楼层
注意内存分配可能产生指针偏移,需确保代码正确处理不确定地址。
jdqdan 发表于 2026-5-29 23:07 | 显示全部楼层
内存分配后快速打印地址有助于调试,确保数据存储位置正确。
IntelCore 发表于 2026-6-5 17:16 | 显示全部楼层
硬件断点像CPU的警卫,保护程序不被篡改,即使代码被修改,也能迅速发现异常。
明日视界 发表于 2026-6-5 22:09 | 显示全部楼层
Cortex-M内核的断点数量限制在12个左右,适用于基本调试,但对于复杂项目可能不足。
亚瑟 发表于 2026-6-8 20:35 | 显示全部楼层
在Keil里设置数据断点,观察修改波形,结合代码逐个排查。
亚瑟 发表于 2026-6-9 10:41 | 显示全部楼层
在Keil里直接设置数据断点,观察点定位修改,记得动态地址分配后设置。
Moon月 发表于 2026-6-9 22:38 | 显示全部楼层
在 Cortex-M3/M4/M7 上,用 DWT 可监控代码执行周期。
MintMilk 发表于 2026-6-11 12:57 | 显示全部楼层
设置断点时,考虑代码执行流程,如函数入口、循环条件、可能出错的地方等。
哪吒哪吒 发表于 2026-6-14 10:39 | 显示全部楼层
根据具体需求,可能需要设置逻辑断点、内存访问断点、硬件中断断点等。这取决于调试目标。
zhuotuzi 发表于 2026-6-16 07:50 | 显示全部楼层
硬件断点靠 CPU 调试寄存器监控内存访问,不会被软件反调试轻易绕过。
星闪动力 发表于 2026-6-16 12:03 | 显示全部楼层
M0内核单片机无法用硬件断点,换用软件断点方法。
mintspring 发表于 2026-6-17 08:03 | 显示全部楼层
监控某一块内存地址,一旦有代码对它写操作,断下来并拿到调用栈,找到写数据的函数。分 Windows、Linux、macOS 三种平台方案。
班杰明 发表于 2026-6-17 18:24 | 显示全部楼层
看你的描述,我在项目中也遇到过类似情况。设置硬件断点是个好办法,但如果芯片不支持,你可以试试用DWT模块来自定义硬件监控。记得监控之前要关闭相关的功能,以免误报。
朝生 发表于 2026-6-18 22:33 | 显示全部楼层
硬件断点像CPU自带的警报,能不干扰程序,即便代码被篡改,也能迅速发现异常。
LinkMe 发表于 2026-6-19 21:47 | 显示全部楼层
检查目标地址变动,实时输出PC寄存器值有误差,可能漏报。
物联万物互联 发表于 2026-6-22 13:13 | 显示全部楼层
DWT模块能实现零延迟硬件监控,精度高,适合对实时性要求高的应用。
AloneKaven 发表于 2026-6-23 18:12 | 显示全部楼层
在Keil中设置数据断点,观察点位置设置为目标地址,监控写入操作。注意检查堆栈指针和动态分配地址的关系。
Jacquetry 发表于 2026-6-24 12:43 | 显示全部楼层
看你的描述,我在类似的STM32项目中也遇到过。可以在调试器里给动态地址的段设数据断点,然后逐步运行代码,这样当地址被写入时,调试器就会停下来,直接定位到是哪个函数。记得设置断点后先执行一遍程序,以确保正确捕获异常。
未来AI 发表于 2026-6-24 14:50 | 显示全部楼层
STM32芯片自带硬件断点功能,只要调试器连接无误,就能实现断点调试。
zephyr9 发表于 2026-6-29 22:48 | 显示全部楼层
芯片不支持硬件断点,那试试软件断点或者其他调试方法吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
0