I think debugassert() is for finding BUGs during the development/testing
phase.

In the other hand assert() should be put in case where something really
catastrofic is going to happen and cannot be avoid anyway.

My personal opinion is that release code shouldn't have (or should have the
minimum as possible) assert() and PANIC(). You don't wasn't want your code
to fail in a critical moment, do you?

So assert() code could be used during an inicial validation phase in the
field. But of course, if it is a HW issue, there is nothing your code can
do except showing a BSOD.

BR,

Alan

On Thu, Dec 14, 2023 at 11:50 AM Tim Hardisty <timhardist...@gmail.com>
wrote:

> Hi,
>
> I'm wondering if there is an "approved" usage of assert vs debugassert
> for files/apps in the nuttx-apps repo?
>
> My thinking is:
>
>   * use debugassert if a function in apps would only fail if the calling
>     code, probably (or possibly only) if other functions within apps,
>     rather than an unknown higher level app,  have done something dumb
>     that should be picked up during nuttx-apps development and so should
>     not make it through to final code; but if they do, that's the fault
>     of the developer for not turning on debug asserts!!
>   * use assert if the error would cause the obviously unknown
>     higher-level calling app someone's writing to fail if the error was
>     allowed to pass unchecked, so the developer of that higher level app
>     can deal with it programmatically.
>
> That might almost suggest that debugassert() is for private functions
> and assert() is for public ones?
>
> Probably over-thinking it as usual, but I'm never afraid to ask :)
>
> Thanks!
>
> TimJTi.
>

Reply via email to