CYGPKG_INFRA_DEBUG
Boolean
The eCos source code contains a significant amount of internal debugging support, in the form of assertions and tracing. Assertions check at runtime that various conditions are as expected; if not, execution is halted. Tracing takes the form of text messages that are output whenever certain events occur, or whenever functions are called or return. The most important property of these checks and messages is that they are not required for the program to run. It is prudent to develop software with assertions enabled, but disable them when making a product release, thus removing the overhead of that checking. It is possible to enable assertions and tracing independently. There are also options controlling the exact behavior of the assertion and tracing facilities, thus giving users finer control over the code and data size requirements.
CYGDBG_USE_ASSERTS
Boolean
If this option is defined, asserts in the code are tested. Assert functions (CYG_ASSERT()) are defined in "include/cyg/infra/cyg_ass.h" within the "install" tree. If it is not defined, these result in no additional object code and no checking of the asserted conditions.
CYGDBG_INFRA_DEBUG_PRECONDITIONS
Boolean
This option allows individual control of preconditions. A precondition is one type of assert, which it is useful to control separately from more general asserts. The function is CYG_PRECONDITION(condition,msg).
CYGDBG_INFRA_DEBUG_POSTCONDITIONS
Boolean
This option allows individual control of postconditions. A postcondition is one type of assert, which it is useful to control separately from more general asserts. The function is CYG_POSTCONDITION(condition,msg).
CYGDBG_INFRA_DEBUG_LOOP_INVARIANTS
Boolean
This option allows individual control of loop invariants. A loop invariant is one type of assert, which it is useful to control separately from more general asserts, particularly since a loop invariant is typically evaluated a great many times when used correctly. The function is CYG_LOOP_INVARIANT(condition,msg).
CYGDBG_INFRA_DEBUG_ASSERT_MESSAGE
Boolean
All assertions within eCos contain a text message which should give some information about the condition being tested. These text messages will end up being embedded in the application image and hence there is a significant penalty in terms of image size. It is possible to suppress the use of these messages by disabling this option. This results in smaller code size, but there is less human-readable information if an assertion actually gets triggered.
CYGDBG_USE_TRACING
Boolean
If this option is defined, tracing operations result in output or logging, depending on other options. This may have adverse effects on performance, if the time taken to output message overwhelms the available CPU power or output bandwidth. Trace functions (CYG_TRACE())are defined in include/cyg/infra/cyg_trac.h within the install tree. If it is not defined, these result in no additional object code and no trace information.
CYGDBG_INFRA_DEBUG_FUNCTION_REPORTS
Boolean
This option allows individual control of function entry/exit tracing, independent of more general tracing output. This may be useful to remove clutter from a trace log.
CYGDBG_INFRA_DEBUG_TRACE_MESSAGE
Boolean
All trace calls within eCos contain a text message which should give some information about the circumstances. These text messages will end up being embedded in the application image and hence there is a significant penalty in terms of image size. It is possible to suppress the use of these messages by disabling this option. This results in smaller code size, but there is less human-readable information available in the trace output, possibly only filenames and line numbers.
CYGDBG_INFRA_DEBUG_TRACE_ASSERT_NULL
Radio
A null output module which is useful when debugging interactively; the output routines can be breakpointed rather than have them actually "print" something.
CYGDBG_INFRA_DEBUG_TRACE_ASSERT_SIMPLE
Radio
An output module which produces simple output from tracing and assertion events.
CYGDBG_INFRA_DEBUG_TRACE_ASSERT_FANCY
Radio
An output module which produces fancy output from tracing and assertion events.
CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER
Radio
An output module which buffers output from tracing and assertion events. The stored messages are output when an assert fires, or cyg_trace_output() is called. Of course, there will only be stored messages if tracing per se (CYGDBG_USE_TRACING) is enabled above.
CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE
Count
The size of the trace buffer. This counts the number of trace records stored. When the buffer fills it either wraps, stops recording, or generates output.
CYGDBG_INFRA_DEBUG_TRACE_BUFFER_WRAP
Radio
When the trace buffer has filled with records it starts again at the beginning. Hence only the last CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE messages will be recorded.
CYGDBG_INFRA_DEBUG_TRACE_BUFFER_HALT
Radio
When the trace buffer has filled with records it stops recording. Hence only the first CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE messages will be recorded.
CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT
Radio
When the trace buffer has filled with records it prints the contents of the buffer. The buffer is then emptied and the system continues.
CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT_ON_ASSERT
Boolean
When an assertion fails the trace buffer will be printed to the default diagnostic device.
CYGDBG_INFRA_DEBUG_FUNCTION_PSEUDOMACRO
Boolean
All trace and assert calls within eCos contain a reference to the builtin macro "__PRETTY_FUNCTION__", which evaluates to a string containing the name of the current function. This is useful when reading a trace log. It is possible to suppress the use of the function name by disabling this option. This results in smaller code size, but there is less human-readable information available in the trace output, possibly only filenames and line numbers.