GDB debugging support
Collaboration diagram for GDB debugging support:
Modules | |
| GDB system call API | |
Macros | |
| #define | gdb_do_break() |
| Break into GDB, if present. More... | |
Enumerations | |
| enum | GdbState { eGDB_NotPresent, eGDB_Detached, eGDB_Attached } |
Functions | |
| void | gdb_init (void) |
| Initialise GDB stub, if present. More... | |
| void | gdb_enable (bool state) |
| Dynamically enable/disable GDB stub. More... | |
| GdbState | gdb_present (void) |
| Check if GDB stub is present. More... | |
| void | gdb_on_attach (bool attached) |
| Called from task queue when GDB attachment status changes. More... | |
| void | gdb_detach () |
| Detach from GDB, if attached. More... | |
| void | debug_crash_callback (const struct rst_info *rst_info, uint32_t stack, uint32_t stack_end) |
| void | debug_print_stack (uint32_t start, uint32_t end) |
| Send a stack dump to debug output. More... | |
Detailed Description
Macro Definition Documentation
◆ gdb_do_break
| #define gdb_do_break | ( | ) |
Value:
do { \
} while(0)
Break into GDB, if present.
Enumeration Type Documentation
◆ GdbState
| enum GdbState |
Function Documentation
◆ debug_crash_callback()
| void debug_crash_callback | ( | const struct rst_info * | rst_info, |
| uint32_t | stack, | ||
| uint32_t | stack_end | ||
| ) |
◆ debug_print_stack()
| void debug_print_stack | ( | uint32_t | start, |
| uint32_t | end | ||
| ) |
Send a stack dump to debug output.
- Parameters
-
start Start address to output end Output up to - but not including - this address
◆ gdb_detach()
| void gdb_detach | ( | ) |
Detach from GDB, if attached.
- Note
- We send GDB an 'exit process' message
◆ gdb_enable()
| void gdb_enable | ( | bool | state | ) |
Dynamically enable/disable GDB stub.
- Parameters
-
state true to enable, false to disable
- Note
- has no effect if gdbstub is not present
Calling with enable = false overrides configured behaviour as follows:
- Debug exceptions will be silently ignored
- System exceptions will cause a watchdog reset, as for
GDBSTUB_BREAK_ON_EXCEPTION = 0 - All incoming serial data is passed through to UART2 without inspection, as for
GDBSTUB_CTRLC_BREAK = 0
◆ gdb_init()
| void gdb_init | ( | void | ) |
Initialise GDB stub, if present.
- Note
- Called by framework at startup, but does nothing if gdbstub is not linked.
◆ gdb_on_attach()
| void gdb_on_attach | ( | bool | attached | ) |
Called from task queue when GDB attachment status changes.
- Note
- User can implement this function to respond to attachment changes
◆ gdb_present()
| GdbState gdb_present | ( | void | ) |
Check if GDB stub is present.
1.8.17