9 #if FW_ASSERT_LEVEL == FW_FILEID_ASSERT 10 #define fileIdFs "Assert: 0x%08" PRIx32 ":%" PRI_FwSizeType "" 12 #define fileIdFs "Assert: \"%s:%" PRI_FwSizeType "\"" 19 (void)fputs(msg, stderr);
20 (void)fputs(
"\n", stderr);
48 file, lineNo, arg1, arg2, arg3);
54 file, lineNo, arg1, arg2, arg3, arg4);
60 file, lineNo, arg1, arg2, arg3, arg4, arg5);
66 file, lineNo, arg1, arg2, arg3, arg4, arg5, arg6);
87 defaultReportAssert(file, lineNo, numArgs, arg1, arg2, arg3, arg4, arg5, arg6, destBuffer,
88 static_cast<FwSizeType>(
sizeof(destBuffer)));
97 AssertHook* AssertHook::s_assertHook =
nullptr;
100 this->previousHook = s_assertHook;
105 s_assertHook = this->previousHook;
123 if (
nullptr == registeredHook) {
125 defaultReportAssert(file, lineNo, numArgs, arg1, arg2, arg3, arg4, arg5, arg6, assertMsg,
126 static_cast<FwSizeType>(
sizeof(assertMsg)));
130 registeredHook->
reportAssert(file, lineNo, numArgs, arg1, arg2, arg3, arg4, arg5, arg6);
133 #if FW_ASSERTIONS_ALWAYS_ABORT 216 if (
nullptr == registeredHook) {
218 Fw::defaultReportAssert(file, lineNo, 0, 0, 0, 0, 0, 0, 0, assertMsg,
219 static_cast<FwSizeType>(
sizeof(assertMsg)));
221 registeredHook->
reportAssert(file, lineNo, 0, 0, 0, 0, 0, 0, 0);
229 if (
nullptr == registeredHook) {
231 Fw::defaultReportAssert(file, lineNo, 1, arg1, 0, 0, 0, 0, 0, assertMsg,
232 static_cast<FwSizeType>(
sizeof(assertMsg)));
234 registeredHook->
reportAssert(file, lineNo, 1, arg1, 0, 0, 0, 0, 0);
242 if (
nullptr == registeredHook) {
244 Fw::defaultReportAssert(file, lineNo, 2, arg1, arg2, 0, 0, 0, 0, assertMsg,
245 static_cast<FwSizeType>(
sizeof(assertMsg)));
247 registeredHook->
reportAssert(file, lineNo, 2, arg1, arg2, 0, 0, 0, 0);
255 if (
nullptr == registeredHook) {
257 Fw::defaultReportAssert(file, lineNo, 3, arg1, arg2, arg3, 0, 0, 0, assertMsg,
258 static_cast<FwSizeType>(
sizeof(assertMsg)));
260 registeredHook->
reportAssert(file, lineNo, 3, arg1, arg2, arg3, 0, 0, 0);
273 if (
nullptr == registeredHook) {
275 Fw::defaultReportAssert(file, lineNo, 4, arg1, arg2, arg3, arg4, 0, 0, assertMsg,
276 static_cast<FwSizeType>(
sizeof(assertMsg)));
278 registeredHook->
reportAssert(file, lineNo, 4, arg1, arg2, arg3, arg4, 0, 0);
292 if (
nullptr == registeredHook) {
294 Fw::defaultReportAssert(file, lineNo, 5, arg1, arg2, arg3, arg4, arg5, 0, assertMsg,
295 static_cast<FwSizeType>(
sizeof(assertMsg)));
297 registeredHook->
reportAssert(file, lineNo, 5, arg1, arg2, arg3, arg4, arg5, 0);
312 if (
nullptr == registeredHook) {
314 Fw::defaultReportAssert(file, lineNo, 6, arg1, arg2, arg3, arg4, arg5, arg6, assertMsg,
315 static_cast<FwSizeType>(
sizeof(assertMsg)));
317 registeredHook->
reportAssert(file, lineNo, 6, arg1, arg2, arg3, arg4, arg5, arg6);
I8 CAssert1(FILE_NAME_ARG file, FwAssertArgType arg1, FwSizeType lineNo)
PlatformSizeType FwSizeType
I8 CAssert2(FILE_NAME_ARG file, FwAssertArgType arg1, FwAssertArgType arg2, FwSizeType lineNo)
FW_ASSERT_NORETURN void defaultSwAssert(FILE_NAME_ARG file, FwSizeType lineNo, FwSizeType numArgs, FwAssertArgType arg1, FwAssertArgType arg2, FwAssertArgType arg3, FwAssertArgType arg4, FwAssertArgType arg5, FwAssertArgType arg6)
int8_t I8
8-bit signed integer
void defaultReportAssert(FILE_NAME_ARG file, FwSizeType lineNo, FwSizeType numArgs, FwAssertArgType arg1, FwAssertArgType arg2, FwAssertArgType arg3, FwAssertArgType arg4, FwAssertArgType arg5, FwAssertArgType arg6, CHAR *destBuffer, FwSizeType buffSize)
#define PRI_FwAssertArgType
static AssertHook * getRegisteredHook()
void SwAssert(FILE_NAME_ARG file, FwSizeType lineNo)
Assert with no arguments.
void defaultPrintAssert(const CHAR *msg)
I8 CAssert3(FILE_NAME_ARG file, FwAssertArgType arg1, FwAssertArgType arg2, FwAssertArgType arg3, FwSizeType lineNo)
#define FW_ASSERT_TEXT_SIZE
Size of string used to store assert description // NO_CODESONAR LANG.PREPROC.MACROSTART/END.
virtual void reportAssert(FILE_NAME_ARG file, FwSizeType lineNo, FwSizeType numArgs, FwAssertArgType arg1, FwAssertArgType arg2, FwAssertArgType arg3, FwAssertArgType arg4, FwAssertArgType arg5, FwAssertArgType arg6)
destructor
I8 CAssert6(FILE_NAME_ARG file, FwAssertArgType arg1, FwAssertArgType arg2, FwAssertArgType arg3, FwAssertArgType arg4, FwAssertArgType arg5, FwAssertArgType arg6, FwSizeType lineNo)
virtual void printAssert(const CHAR *msg)
FormatStatus stringFormat(char *destination, const FwSizeType maximumSize, const char *formatString,...)
format a c-string
I8 CAssert0(FILE_NAME_ARG file, FwSizeType lineNo)
I8 CAssert5(FILE_NAME_ARG file, FwAssertArgType arg1, FwAssertArgType arg2, FwAssertArgType arg3, FwAssertArgType arg4, FwAssertArgType arg5, FwSizeType lineNo)
Implementation of malloc based allocator.
I8 CAssert4(FILE_NAME_ARG file, FwAssertArgType arg1, FwAssertArgType arg2, FwAssertArgType arg3, FwAssertArgType arg4, FwSizeType lineNo)
#define FW_ASSERT_NORETURN
PlatformAssertArgType FwAssertArgType
The type of arguments to assert functions.