Jump to main content

##

# 1.2.5.4.10 SYS_DEBUG_PRINT Macro

## C

    #define SYS_DEBUG_PRINT(level, fmt, ...)

## Summary

Formats and prints an error message if the system error level is defined at or lower than the level specified.

## Description

This macro formats and prints an error message if the system error level is defined at or lower than the level specified.

## Precondition

If mapped to the SYS_DEBUG_Print function, then the system debug service must be initialized and running.

## Parameters

Param | Description
--- | ---
level | The current error level threshold for displaying the message.
format | Pointer to a buffer containing the format string for the message to be displayed.
... | Zero or more optional parameters to be formated as defined by the format string.

## Returns

None.

## Example

    // In configuration.h file: #define SYS_DEBUG_USE_CONSOLE  1
    // In sys_debug.h: #define SYS_DEBUG_PRINT(level, fmt, ...) _SYS_DEBUG_PRINT(level, fmt, ##__VA_ARGS__)

    // In source code
    int result;

    result = SomeOperation();

    if (result > MAX_VALUE)
    {
        SYS_DEBUG_PRINT(SYS_ERROR_WARNING, "Result of %d exceeds max value\r\n", result);
        // Take appropriate action
    }

## Remarks

The format string and arguments follow the printf convention.

By default, this macro is defined as nothing, effectively removing all code generated by calls to it. To process SYS_DEBUG_PRINT calls, this macro must be defined in a way that maps calls to it to the desired implementation (see example, above).

This macro can be mapped to the system console service (along with other system debug macros) by defining SYS_DEBUG_USE_CONSOLE in the system configuration (configuration.h) instead of defining it individually.