Aufgabe 2: Unterbrechungen
Support debugging of the operating system. More...
Files | |
file | state.h |
GDB_Stub State of the current core | |
file | stub.h |
GDB_Stub contains the necessary functionality for remote debugging | |
Macros | |
#define | STRINGIFY(S) #S |
Converts a macro parameter into a string. More... | |
#define | assert_size(TYPE, SIZE) static_assert(sizeof(TYPE) == (SIZE), "Wrong size for " STRINGIFY(TYPE)) |
Statically ensure (at compile time) that a data type (or variable) has the expected size. More... | |
#define | assert(EXP) |
Ensure (at execution time) an expression evaluates to true , print an error message and stop the CPU otherwise. More... | |
#define | kernelpanic(MSG) |
Print an error message in the debug window and stop the current core. More... | |
Detailed Description
Support debugging of the operating system.
Macro Definition Documentation
#define STRINGIFY | ( | S | ) | #S |
Converts a macro parameter into a string.
- Parameters
-
S Expression to be converted
- Returns
- stringified version of S
#define assert_size | ( | TYPE, | |
SIZE | |||
) | static_assert(sizeof(TYPE) == (SIZE), "Wrong size for " STRINGIFY(TYPE)) |
Statically ensure (at compile time) that a data type (or variable) has the expected size.
- Parameters
-
TYPE The type to be checked SIZE Expected size in bytes
#define assert | ( | EXP | ) |
Value:
do { \
if (__builtin_expect(!(EXP), 0)) { \
assertion_failed(STRINGIFY(EXP), __func__, __FILE__, __LINE__); \
} \
} while (false)
Ensure (at execution time) an expression evaluates to true
, print an error message and stop the CPU otherwise.
- Parameters
-
EXP The expression to be checked
#define kernelpanic | ( | MSG | ) |
Value:
do { \
DBG << "PANIC: '" << (MSG) << "' in " << __func__ \
<< " @ " << __FILE__ << ":" << __LINE__ \
Core::die(); \
} while (0)
Print an error message in the debug window and stop the current core.
- Parameters
-
MSG error message