StuBS
handler.h File Reference

for GDB_Stub Interrupt handler and its context More...

#include "types.h"
#include "debug/assert.h"
Include dependency graph for handler.h:
This graph shows which files directly or indirectly include this file:

Classes

struct  DebugContext
 Debug context (stored on stack during GDB interrupt) More...
 

Functions

 assert_size (DebugContext, 24 *8)
 
void gdb_interrupt_handler (DebugContext *context)
 High-Level interrupt handler for GDB_Stub. More...
 

Constants

uint32_t gdb_interrupt_entries
 Number of GDB interrupt entry function (defined by NUM_HANDLERS in gdb/handler.asm)
 
void *const gdb_interrupt_entry []
 Array with pointers to the GDB interrupt entry functions (dbg_irq_entry_VECTOR in gdb/handler.asm)
 

Detailed Description


Class Documentation

◆ DebugContext

struct DebugContext

Debug context (stored on stack during GDB interrupt)

See also
debug_handler
InterruptContext
Class Members
uint64_t gs: 16
uint64_t __pad0__: 0
uint64_t fs: 16
uint64_t __pad1__: 0
uint64_t r15
uint64_t r14
uint64_t r13
uint64_t r12
uint64_t r11
uint64_t r10
uint64_t r9
uint64_t r8
uint64_t rbp
uint64_t rdi
uint64_t rsi
uint64_t rdx
uint64_t rcx
uint64_t rbx
uint64_t rax
uint64_t vector
uint64_t error_code: 32
uint64_t __pad2__: 0
uint64_t rip
uint64_t cs: 16
uint64_t __pad3__: 0
uint64_t eflags: 32
uint64_t __pad4__: 0
uint64_t rsp
uint64_t ss: 16
uint64_t __pad5__: 0

Function Documentation

◆ gdb_interrupt_handler()

void gdb_interrupt_handler ( DebugContext context)

High-Level interrupt handler for GDB_Stub.

Allow the generic GDB interrupt handler to access the protected methods of this class.

Similar to the default interrupt_handler. Called by the entry function written in assembly (see debug/gbd/handler.asm) – these routines are installed in the constructor.

After preparing the data this function calls GDB_Stub::handle, which handles the communication with the host via the serial interface.

Optional:
Since this function should now also be triggered by the serial interrupt, the end of interrupt must be signaled.
Parameters
contextcontains a pointer to the stack, which can be used to access the debug interrupt context.