arm - Keil UV5.23/24/25 在模拟器上第二次启动调试 session 时崩溃

标签 arm keil

我在 Win10 笔记本电脑(全新安装)上遇到了 uVision 和 Hitex 模拟器 (Tanto2) 的问题。
我的初始设置是 UV5.23,我更新到 5.24 并在 Keil 的要求下暂定为 5.25。
我有一个针对 UV5.23 的专用 SDK 版本,我切换到了一个针对 UV5.24 的新版本。

固件模拟器在我使用 UV5.23 的 SDK 时重新刷新,并在移动到 UV5.24 时更新

我可以做什么:
- 启动 UV5,打开我的项目,
- 在模拟器上启动调试 session ,加载我的项目,进行第一次运行并停止调试 session 。

无论我使用什么版本,当我想在模拟器上启动第二个调试 session 时都会出现问题。单击“开始调试”后,UV5 会崩溃并显示以下消息:
“uVision IDE 已停止工作
一个问题导致程序停止正常工作。 window 会……”

我需要重新启动 UV5 才能运行新的调试 session 。

使用 Keil 5.23 及其专用 SDK 版本的设置在 3 月底之前都没有问题。

3月底以来,出现的Windows更新有:KB4088776、KB4093110、KB4093112、KB890830、KB4099989。
我尝试卸载 KB4099989,但没有任何变化,问题仍然存在。

有这些更新的链接吗?
如果有人遇到同样的问题并且能够解决它,我会听到你的声音:-)

同样的问题出现在我同事的笔记本电脑上,而在上次 Windows 更新之前它运行良好。

预先感谢您的帮助。

最佳答案

这是因为下面的问题。如果在 dll 卸载期间应用程序崩溃,Windows 会在注册表中添加一个条目以忽略将来的卸载 dll 请求。因此,如果应用程序尝试在同一 session 中再次加载 dll,那么应用程序就会崩溃。

作为一种解决方法,请转到注册表中的以下位置,

我的电脑\HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

并删除卸载注册表路径。每次如果有新的崩溃,那么 dll 将被添加回来,需要删除。

关于arm - Keil UV5.23/24/25 在模拟器上第二次启动调试 session 时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49852219/

相关文章:

c - 使用 Keil uVision 的 8051 C 中断处理

c - Keil uVision 单步调试项目外的代码

variables - STM32:非初始化变量?

rust - 计算前导/尾随 1/0 的效率有什么不同吗?

C到arm汇编代码转换

windows - Windows 上的 ARM 汇编语言 IDE

c - 当指针值改变时,堆作用域会成功释放吗?

c - 111-D 返回 0 时无法访问语句

用于指定 ARM 或 Thumb 模式的 C 预处理器/编译器指令?

assembly - ARM 消息无效的文字常量: pool needs to be closer