Aufgabe 3: Pro-/Epilog
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