KEIL调试正在运行的程序

  • Post author:
  • Post category:其他


问题现象

有时程序跑着跑着就飞了,但此时却没有接仿真器,不能停下来看运行状态。如果重新启动调试,会破坏现场。有没有办法attach到应用程序上调试呢?

答案是肯定的。

解决措施

在调试选项中,取消以下选择项


  • Options For Target – Debug – Load Application at startup


  • Options For Target – Debug – Settings – Reset after connect

    (with

    Options For Target – Debug – Settings – Connect

    selected as

    NORMAL

    )


  • Options For Target – Utilities – Update Target before Debugging

如果下面3张图片中显示的所有选项都被禁用,调试器将在不执行硬件重置的情况下启动。


注意,如果要保持目标运行,请选择“

Connect: Without Stop

”。


禁用这些选项后,调试器将启动,目标硬件将停止在程序计数器的当前位置。这允许您分析内存和寄存器内容。

由于“目标-调试-启动时加载应用程序的选项”已禁用,因此调试器没有任何应用程序和调试信息。要将此信息加载到调试器中,请使用带有选项NORESET或INCREMENTAL的load调试器命令。

您可以使用“目标-调试选项”下的“初始化文件”自动执行此LOAD。例如,以下调试命令加载当前应用程序的程序和调试信息,其中%L是项目的链接器输出文件名:



LOAD %L INCREMENTAL

参考资料




UVISION DEBUGGER: Connect to a running Target without Hardware Reset



https://developer.arm.com/documentation/ka003020/latest



keil MDK 调试运行中程序_纵向深耕的博客-CSDN博客_keil mdk 调试

STM32CubeIDE的设置方法如下:


调试正在运行的程序(STM32CubeIDE)



版权声明:本文为booksyhay原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。