The Pedigree Project
0.1
|
#include <Debugger.h>
Public Member Functions | |
void | initialise () |
void | start (InterruptState &state, LargeStaticString &description) |
virtual void | interrupt (size_t interruptNumber, InterruptState &state) |
Static Public Member Functions | |
static Debugger & | instance () |
Public Attributes | |
InterruptState * | m_pTempState |
Private Member Functions | |
Debugger () | |
Debugger (const Debugger &) | |
Debugger & | operator= (const Debugger &) |
Private Attributes | |
int | m_nIoType |
Static Private Attributes | |
static Debugger | m_Instance |
Additional Inherited Members | |
Protected Member Functions inherited from InterruptHandler | |
virtual | ~InterruptHandler () |
Implements the main kernel debugger. This class interfaces with the machine abstraction to provide trap and breakpoint services. It exposes a set of commands, which are accessed by the user through a command-line interface defined by a concretion of the abstract class DebuggerIO. The kernel can also write entries to the (debug) system log by calling operator<< directly.
Definition at line 42 of file Debugger.h.
|
private |
Default constructor - does nothing.
Definition at line 99 of file Debugger.cc.
Referenced by instance().
void Debugger::initialise | ( | ) |
Initialise the debugger - register interrupt handlers etc.
on ARM
Definition at line 107 of file Debugger.cc.
References InterruptManager::getBreakpointInterruptNumber(), and InterruptManager::instance().
Referenced by instance().
|
inlinestatic |
Get the instance of the Debugger
Definition at line 48 of file Debugger.h.
References Debugger(), initialise(), interrupt(), m_Instance, and start().
Referenced by HostedInterruptManager::interrupt(), X64InterruptManager::interrupt(), MIPS32InterruptManager::interrupt(), PPC32InterruptManager::interrupt(), ARM926EInterruptManager::interrupt(), MIPS32TlbManager::interrupt(), X86InterruptManager::interrupt(), OpenPic::interrupt(), and ARMV7InterruptManager::syscall().
|
virtual |
Called when the handler is registered with the interrupt manager and the interrupt occurred
interruptNumber | the interrupt number |
state | reference to the state before the interrupt |
Implements InterruptHandler.
Definition at line 455 of file Debugger.cc.
References InterruptManager::instance(), Processor::setSingleStep(), and start().
Referenced by instance().
void Debugger::start | ( | InterruptState & | state, |
LargeStaticString & | description | ||
) |
Causes the debugger to take control.
Definition at line 121 of file Debugger.cc.
References DebuggerCommand::autocomplete(), DebuggerIO::drawHorizontalLine(), DebuggerIO::drawString(), DebuggerIO::enableCli(), ServiceManager::enumerateOperations(), TraceCommand::execTrace(), DebuggerCommand::execute(), TraceCommand::execute(), Flush, VirtualAddressSpace::getKernelAddressSpace(), Machine::getKeyboard(), ServiceManager::getService(), DebuggerCommand::getString(), DebuggerIO::getWidth(), Processor::halt(), Processor::information(), Log::instance(), panic(), ServiceFeatures::probe, ServiceFeatures::provides(), DebuggerIO::readCli(), Service::serve(), DebuggerIO::setCliUpperLimit(), Keyboard::setDebugState(), ThreadsCommand::setPointers(), Display::setScreenMode(), and DebuggerIO::writeCli().
Referenced by instance(), HostedInterruptManager::interrupt(), X64InterruptManager::interrupt(), interrupt(), ARM926EInterruptManager::interrupt(), PPC32InterruptManager::interrupt(), MIPS32InterruptManager::interrupt(), MIPS32TlbManager::interrupt(), X86InterruptManager::interrupt(), OpenPic::interrupt(), and ARMV7InterruptManager::syscall().
|
staticprivate |
The Debugger instance (singleton class)
Definition at line 88 of file Debugger.h.
Referenced by instance().
|
private |
The current DebuggerIO type.
Definition at line 83 of file Debugger.h.