風丶 2023-06-29 11:10 采纳率: 0%
浏览 17

GD32调试时,添加两个断点,只能运行到第一个断点,第二个断点无法进入

img

img


我近期在使用GD32调试的时候,在代码中添加了两个断点,一个在函数调用上,一个在函数内部,点击运行时,代码可以执行到第一个断点。再点击运行,代码无法运行到函数内部的断点。请问这个是什么原因造成的呢?

  • 写回答

2条回答 默认 最新

  • 泡沫o0 2023年度博客之星上海赛道TOP 1 2023-06-29 11:33
    关注

    这种情况可能是由于单片机的硬件限制造成的。有些单片机的调试功能受到一些限制,例如在某些情况下只能设置一个断点并执行到该断点,而无法继续执行到后续的断点。

    这可能是由于单片机的调试硬件资源有限,只能支持一个断点或者断点数量有限。一种常见的情况是,某些单片机只有一个硬件断点,即只能在一个地址上设置断点。

    当你在代码中设置多个断点时,调试器会优先选择设置的第一个断点。一旦程序执行到第一个断点处,调试器会暂停程序执行,以等待你的操作(查看变量值、单步执行等)。在你继续执行程序时,调试器可能无法再次进入第二个断点,因为它已经超出了硬件断点的限制。

    要解决这个问题,你可以尝试以下方法:

    1. 确认单片机的调试功能限制:查阅单片机的文档或参考手册,了解单片机调试器支持的断点数量和其他限制。

    2. 使用软件断点:某些调试工具支持软件断点功能,即在代码中插入特殊的指令来实现断点的功能。软件断点的数量一般没有硬件断点的限制,但可能会导致调试速度变慢。

    3. 优化代码结构:如果你只是为了调试方便而添加了多个断点,可以考虑优化代码结构,将需要调试的部分独立出来,以便只设置一个断点。

    4. 使用其他调试方法:如果单片机的硬件限制无法满足你的需求,你可以考虑使用其他调试方法,例如串口打印调试,通过串口输出调试信息来辅助调试。

    总之,在使用单片机调试时,要注意硬件的限制以及调试工具的功能特性,合理利用调试工具和技巧来提高调试效率。

    请注意,由于GD32系列芯片有多个型号和厂家,具体的调试限制和方法可能会有所不同。建议你查阅相关的芯片文档和调试工具的使用说明,以获取更准确的信息和解决方案。

    评论

报告相同问题?

问题事件

  • 创建了问题 6月29日

悬赏问题

  • ¥15 目详情-五一模拟赛详情页
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line