This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/MSP-EXP430FR5994:如果尝试单步执行 CCS 8.3中的 MSP430 "Calla &abs20"函数调用、调试器看起来是自由运行的、而不是单步执行

Guru**** 2343770 points
Other Parts Discussed in Thread: MSP-EXP430FR5994
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/783461/ccs-msp-exp430fr5994-if-attempt-to-step-over-a-msp430-calla-abs20-function-call-in-ccs-8-3-the-debugger-seems-to-free-run-rather-than-stepping-over

器件型号:MSP-EXP430FR5994
主题中讨论的其他器件: MSP430FR5994

工具/软件:Code Composer Studio

TI 编译器 MSP430运行时库包含 _lock 和 _unlock 函数指针、以便能够插入互斥。 编译器生成  一个"CALLA &abs20"指令来调用这些函数指针。

将 CCS 8.3.0.00009与 TI MSP430工具链9.0.1一起使用时发现、尝试单步执行对此类函数指针的调用似乎会导致调试器在下一个断点之前自由运行、而不是单步执行函数调用。

使用随附的可在 MSP-EXP430FR5994上运行的示例:

1.启动调试会话,并在第一个 malloc()调用之后的行上设置断点:

2.进入 malloc()调用。

3.步骤直到在 malloc 中转到_lock()调用:

4.使用 Step Over,该步骤应该是单步执行 malloc()中的 text 语句。 但是、Step Over 会使程序运行到在主函数中设置的下一个断点:

这是错误还是预期行为?

e2e.ti.com/.../3058.MSP430FR5994_5F00_max_5F00_heap_5F00_size.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您一如既往地提供出色的测试案例。 我可以使用提供的可执行文件以及使用18.1.5LTS 重建时重现此问题。

    正如您所说的、在该位置上的源代码步越会导致目标只运行、而不是单步进入下一行。 如果您源步入和步越、您可以继续步越。

    至于您的问题-这是一个错误吗? 我不确定。 我需要一些调试器专家来进一步调查。

    谢谢
    Ki
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="Ki-Soo Lee ]AS 作为您的问题-这是错误吗? 我不确定。 我需要一些调试器专家来进一步调查。

    这是一个错误。 我为此申请了一个。 跟踪 ID:CCBT-2415

    总之、未在正确的地址上设置步骤断点。 因此、步进断点被错过、目标继续执行。

    再次感谢出色的测试案例和详细的分析。

    Ki