![]() |
Max OS 0.3
|
Exception handler for a hardware breakpoint. More...
#include <gdbstub.h>
Public Member Functions | |
| BreakPointException (GDBServer *server) | |
| Registers a handler for the BreakPointException (interrupt 0x1) | |
| system::cpu_status_t * | handle_interrupt (system::cpu_status_t *status) override |
| Handles the interrupt 0x3 by pausing the thread. | |
Public Member Functions inherited from MaxOS::hardwarecommunication::ExceptionHandler | |
| ExceptionHandler (uint8_t interrupt_number) | |
| Create a new base exception handler for an interrupt. | |
| ~ExceptionHandler () | |
| virtual string | get_message (system::cpu_status_t *status) |
| Get an human readable error message explaining this exception. | |
Public Member Functions inherited from MaxOS::hardwarecommunication::InterruptHandler | |
| virtual void | handle_interrupt () |
| Handles an interrupt. | |
Additional Inherited Members | |
Protected Member Functions inherited from MaxOS::hardwarecommunication::InterruptHandler | |
| InterruptHandler (uint8_t interrupt_number, int64_t redirect=-1, uint64_t redirect_index=0) | |
| Creates a new interrupt handler and registers it with the interrupt manager. | |
| virtual | ~InterruptHandler () |
| Destroys the interrupt handler and unregisters it from the interrupt manager. | |
Protected Attributes inherited from MaxOS::hardwarecommunication::InterruptHandler | |
| uint8_t | m_interrupt_number |
| The interrupt number this handler handles. | |
| BreakPointException::BreakPointException | ( | GDBServer * | server | ) |
Registers a handler for the BreakPointException (interrupt 0x1)
| server | The GDB stub that will handle the exception |
Definition at line 585 of file gdbstub.cpp.
|
overridevirtual |
Handles the interrupt 0x3 by pausing the thread.
| status | The registers at time of exception |
Reimplemented from MaxOS::hardwarecommunication::ExceptionHandler.
Definition at line 600 of file gdbstub.cpp.
References MaxOS::runtime::GDBServer::attached_thread(), MaxOS::processes::GlobalScheduler::current_thread(), MaxOS::runtime::GDBServer::send_message(), MaxOS::processes::Thread::thread_state, and MaxOS::processes::Thread::yield().