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.

[参考译文] 编译器/MSP430FR6989:未连接调试器时_Assert的行为

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/566013/compiler-msp430fr6989-behaviour-of-_assert-when-no-debugger-is-connected

部件号:MSP430FR6989

工具/软件:TI C/C++编译器

您好,

我找不到关于标准_Assert()实现(由Assert.h引用)的确切实现的任何信息。

我不知道在调试程序时,或者在没有 连接的调试器的情况下运行同一程序时,它的工作方式是否不同。

没有连接调试器时,不能设置任何断点,但它是否会在无限循环中挂起?

我正在使用CCS 6.1 Tm2,但没有任何更新,我只使用C编译器。

此致,

Sebastian

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

    Sebastian M 说:
    我无法找到有关标准_Assert()实现(由Assert.h引用)的准确实现的任何信息。

    如果Assert失败,它将调用函数_abort_msg。  此函数在RTS库源代码的源文件Assert.c中定义。  您可以在类似的位置找到它...

    C:15.12 \ti\ccsv6\tools\compiler\ti-CGT-MSP430_MSP430_LTS.0.LTS\lib\src. 

    您将看到_ABORT_MSG调用函数fputs。  这是C I/O功能。  

    Sebastian M 说:
    未连接调试器时,不能设置任何断点,但它是否会在无限循环中挂起?[/QUOT]

    是的。  因为没有连接调试器,所以fputs没有任何作用。  理论上,执行fputs可能会使内存或执行状态的其他方面出现问题。  但实际上,您通常看不到任何东西。  有关C I/O函数及其如何依赖调试器的更多背景信息,请参阅  MSP430编译器手册中标题为C I/O函数的部分。  在对fputs的无效果调用后,调用函数abort。  此功能以无限循环结束。

    谢谢,此致,

    -George