bitwiseworks / libcx

kLIBC Extension Library
GNU Lesser General Public License v2.1
11 stars 1 forks source link

LIBCx assertions don't show up in logs unless module's log group is enabled #97

Closed dmik closed 3 years ago

dmik commented 3 years ago

This is a regression of edd18962e6b6754a1966970257e08e87e7df4771 where we gave up on using __libc_LogAssert to better fit our own logic. __libc_LogAssert is hacky in a way that it ignores which log groups are enabled when doing its job. __libc_LogRaw we use now does not do such a thing so if the assertion happens in a module whose log group is disabled via LIBCX_TRACING. So, if the user has LIBCX_TRACING=-all, they will get nothing upon an assertion.

Since assertions are always fatal in LIBCx (and since they are pieces of critical information anyway), this definitely makes no sense. We should write them out regardless of whether the log group is enabled or not.

Discovered when sorting out #96.

dmik commented 3 years ago

Ideally, there should be a LIBCn flag, something like __LIBC_LOG_MSGF_FORCE to ignore group checking but I may work around that w/o involving a LIBC release cycle by supplying a NULL group info struct which will have the same effect. We'll see.