硬汉嵌入式论坛

 找回密码
 立即注册
查看: 665|回复: 7
收起左侧

[MDK] MDK的调试bug,错的有点离谱,程序以及return了还能继续往下跑

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2023-9-8 15:55:45 | 显示全部楼层 |阅读模式
MDK版本用的5.3X

简短视频展示:
https://www.bilibili.com/video/BV1Hu4y1y72N




对此问题的进一步深化视频:


系统测试AC5. AC6. IAR和GCC调试效果,MDK AC6不开优化调试乱跳,甚至倒序执行
https://www.armbbs.cn/forum.php?mod=viewthread&tid=120946










回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
 楼主| 发表于 2023-9-8 16:19:38 | 显示全部楼层
同样的代码,测试下IAR的是否正常。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
 楼主| 发表于 2023-9-8 17:10:37 | 显示全部楼层
IAR开启最高速度优化,调试比MDK强太多了。

之前以为MDK调试也不差,关键时候太掉链子了

123455.png
回复

使用道具 举报

75

主题

685

回帖

910

积分

金牌会员

积分
910
发表于 2023-9-8 20:36:50 | 显示全部楼层
应该是优化后,实际执行的代码和C语言的每行代码不是一对一了
回复

使用道具 举报

10

主题

90

回帖

120

积分

初级会员

积分
120
发表于 2023-9-8 22:30:08 | 显示全部楼层
顶楼上,我也这么觉得。。。有时候开了最高优化,就会出现这样的问题,可以看看汇编具体的实现方式。。。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
 楼主| 发表于 2023-9-8 22:35:04 | 显示全部楼层
mrjiu 发表于 2023-9-8 22:30
顶楼上,我也这么觉得。。。有时候开了最高优化,就会出现这样的问题,可以看看汇编具体的实现方式。。。

大家没有看完我视频,后面还测试了1级优化就乱跳了。晚些时候我将分享个AC5,AC6,IAR和GCC系统测试视频。
回复

使用道具 举报

0

主题

124

回帖

124

积分

初级会员

积分
124
发表于 2023-9-11 20:35:18 | 显示全部楼层
这样的情况经常发生, 其实它的问题是你打的断点根本就不在return哪儿,它应该是帮你改成在if的地方,不信你在汇编的窗口看, 你是可以在汇编的窗口打断点的,那个才是实际return的位置
AC6的编译之所以高效,原因是它编译后的思路可能跟码农的是完全不一样, 所以没办法在你要的地方设断点, 比如是retrun, 编译后的代码可能已经跟别的地方共用一个return, 所以没法在你要的return处设断点。

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
 楼主| 发表于 2023-9-11 20:45:00 | 显示全部楼层
Edmund1964 发表于 2023-9-11 20:35
这样的情况经常发生, 其实它的问题是你打的断点根本就不在return哪儿,它应该是帮你改成在if的地方,不信 ...

推出了升级版视频。IAR是如何做到指哪打哪

系统测试AC5. AC6. IAR和GCC调试效果,MDK AC6不开优化调试乱跳,甚至倒序执行
https://www.armbbs.cn/forum.php? ... d=120946&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-5 21:21 , Processed in 0.254499 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表