gem5
v22.0.0.0
|
These methods relate to the BaseRemoteGDB and BaseGdbRegCache interfaces. More...
These methods relate to the BaseRemoteGDB and BaseGdbRegCache interfaces.
void gem5::BaseRemoteGDB::addThreadContext | ( | ThreadContext * | _tc | ) |
Definition at line 475 of file remote_gdb.cc.
References gem5::ThreadContext::contextId(), gem5::ListenSocket::islistening(), gem5::BaseRemoteGDB::listen(), gem5::BaseRemoteGDB::listener, gem5::BaseRemoteGDB::selectThreadContext(), gem5::BaseRemoteGDB::tc, and gem5::BaseRemoteGDB::threads.
Referenced by gem5::Workload::registerThreadContext().
void gem5::BaseRemoteGDB::attach | ( | int | fd | ) |
Definition at line 425 of file remote_gdb.cc.
References gem5::BaseRemoteGDB::attached, DPRINTFN, gem5::VegaISA::f, gem5::BaseRemoteGDB::fd, gem5::BaseRemoteGDB::incomingDataEvent, gem5::BaseRemoteGDB::isAttached(), gem5::pollQueue, gem5::BaseRemoteGDB::processCommands(), and gem5::PollQueue::schedule().
Referenced by gem5::BaseRemoteGDB::connect().
|
inline |
Definition at line 134 of file remote_gdb.hh.
gem5::BaseRemoteGDB::BaseRemoteGDB | ( | System * | system, |
int | _port | ||
) |
Interface to other parts of the simulator.
Definition at line 358 of file remote_gdb.cc.
void gem5::BaseRemoteGDB::connect | ( | ) |
Definition at line 399 of file remote_gdb.cc.
References gem5::ListenSocket::accept(), gem5::BaseRemoteGDB::attach(), gem5::BaseRemoteGDB::incomingConnectionEvent, gem5::BaseRemoteGDB::isAttached(), gem5::ListenSocket::islistening(), gem5::BaseRemoteGDB::listener, panic_if, gem5::pollQueue, and gem5::PollQueue::remove().
Referenced by gem5::Workload::startup().
|
pure virtual |
Return the pointer to the raw bytes buffer containing the register values.
Each byte of this buffer is literally encoded as two hex digits in the g or G RSP packet.
Implemented in gem5::X86ISA::RemoteGDB::AMD64GdbRegCache, gem5::RiscvISA::RemoteGDB::RiscvGdbRegCache, gem5::ArmISA::RemoteGDB::AArch64GdbRegCache, gem5::PowerISA::RemoteGDB::Power64GdbRegCache, gem5::SparcISA::RemoteGDB::SPARC64GdbRegCache, gem5::X86ISA::RemoteGDB::X86GdbRegCache, gem5::ArmISA::RemoteGDB::AArch32GdbRegCache, gem5::PowerISA::RemoteGDB::PowerGdbRegCache, gem5::MipsISA::RemoteGDB::MipsGdbRegCache, and gem5::SparcISA::RemoteGDB::SPARCGdbRegCache.
Referenced by gem5::BaseRemoteGDB::cmdRegR(), and gem5::BaseRemoteGDB::cmdRegW().
void gem5::BaseRemoteGDB::detach | ( | ) |
Definition at line 450 of file remote_gdb.cc.
References gem5::BaseRemoteGDB::attached, gem5::BaseRemoteGDB::clearSingleStep(), DPRINTFN, gem5::BaseRemoteGDB::fd, gem5::BaseRemoteGDB::incomingConnectionEvent, gem5::BaseRemoteGDB::incomingDataEvent, gem5::pollQueue, gem5::PollQueue::remove(), and gem5::PollQueue::schedule().
Referenced by gem5::BaseRemoteGDB::cmdDetach(), and gem5::BaseRemoteGDB::processCommands().
|
pure virtual |
Fill the raw buffer from the registers in the ThreadContext.
Implemented in gem5::X86ISA::RemoteGDB::AMD64GdbRegCache, gem5::RiscvISA::RemoteGDB::RiscvGdbRegCache, gem5::ArmISA::RemoteGDB::AArch64GdbRegCache, gem5::PowerISA::RemoteGDB::Power64GdbRegCache, gem5::SparcISA::RemoteGDB::SPARC64GdbRegCache, gem5::X86ISA::RemoteGDB::X86GdbRegCache, gem5::ArmISA::RemoteGDB::AArch32GdbRegCache, gem5::PowerISA::RemoteGDB::PowerGdbRegCache, gem5::MipsISA::RemoteGDB::MipsGdbRegCache, and gem5::SparcISA::RemoteGDB::SPARCGdbRegCache.
Referenced by gem5::BaseRemoteGDB::processCommands(), and gem5::BaseRemoteGDB::selectThreadContext().
|
inline |
Definition at line 168 of file remote_gdb.hh.
References gem5::BaseRemoteGDB::attached.
Referenced by gem5::BaseRemoteGDB::attach(), gem5::BaseRemoteGDB::connect(), and gem5::Workload::trapToGdb().
void gem5::BaseRemoteGDB::listen | ( | ) |
Definition at line 378 of file remote_gdb.cc.
References gem5::BaseRemoteGDB::_port, gem5::ListenSocket::allDisabled(), gem5::ccprintf(), gem5::curTick(), DPRINTF, gem5::ListenSocket::getfd(), gem5::BaseRemoteGDB::incomingConnectionEvent, gem5::ListenSocket::listen(), gem5::BaseRemoteGDB::listener, gem5::BaseRemoteGDB::name(), gem5::pollQueue, gem5::PollQueue::schedule(), and warn_once.
Referenced by gem5::BaseRemoteGDB::addThreadContext().
std::string gem5::BaseRemoteGDB::name | ( | ) |
Definition at line 372 of file remote_gdb.cc.
References gem5::Named::name(), and gem5::BaseRemoteGDB::sys.
Referenced by gem5::BaseRemoteGDB::listen(), gem5::MipsISA::RemoteGDB::MipsGdbRegCache::name(), gem5::SparcISA::RemoteGDB::SPARCGdbRegCache::name(), gem5::PowerISA::RemoteGDB::PowerGdbRegCache::name(), gem5::ArmISA::RemoteGDB::AArch32GdbRegCache::name(), gem5::X86ISA::RemoteGDB::X86GdbRegCache::name(), gem5::SparcISA::RemoteGDB::SPARC64GdbRegCache::name(), gem5::PowerISA::RemoteGDB::Power64GdbRegCache::name(), gem5::ArmISA::RemoteGDB::AArch64GdbRegCache::name(), gem5::X86ISA::RemoteGDB::AMD64GdbRegCache::name(), gem5::RiscvISA::RemoteGDB::RiscvGdbRegCache::name(), and gem5::HardBreakpoint::name().
|
pure virtual |
Return the name to use in places like DPRINTF.
Having each concrete superclass redefine this member is useful in situations where the class of the regCache can change on the fly.
Implemented in gem5::RiscvISA::RemoteGDB::RiscvGdbRegCache, gem5::X86ISA::RemoteGDB::AMD64GdbRegCache, gem5::ArmISA::RemoteGDB::AArch64GdbRegCache, gem5::PowerISA::RemoteGDB::Power64GdbRegCache, gem5::SparcISA::RemoteGDB::SPARC64GdbRegCache, gem5::X86ISA::RemoteGDB::X86GdbRegCache, gem5::ArmISA::RemoteGDB::AArch32GdbRegCache, gem5::PowerISA::RemoteGDB::PowerGdbRegCache, gem5::MipsISA::RemoteGDB::MipsGdbRegCache, and gem5::SparcISA::RemoteGDB::SPARCGdbRegCache.
int gem5::BaseRemoteGDB::port | ( | ) | const |
Definition at line 417 of file remote_gdb.cc.
References gem5::BaseRemoteGDB::_port, gem5::ListenSocket::islistening(), gem5::BaseRemoteGDB::listener, and panic_if.
Referenced by gem5::BaseRemoteGDB::build(), and gem5::Workload::startup().
void gem5::BaseRemoteGDB::replaceThreadContext | ( | ThreadContext * | _tc | ) |
bool gem5::BaseRemoteGDB::selectThreadContext | ( | ContextID | id | ) |
Definition at line 498 of file remote_gdb.cc.
References gem5::BaseGdbRegCache::getRegs(), gem5::BaseRemoteGDB::regCachePtr, gem5::BaseRemoteGDB::tc, and gem5::BaseRemoteGDB::threads.
Referenced by gem5::BaseRemoteGDB::addThreadContext(), and gem5::BaseRemoteGDB::cmdSetThread().
|
pure virtual |
Set the ThreadContext's registers from the values in the raw buffer.
Implemented in gem5::X86ISA::RemoteGDB::AMD64GdbRegCache, gem5::RiscvISA::RemoteGDB::RiscvGdbRegCache, gem5::ArmISA::RemoteGDB::AArch64GdbRegCache, gem5::PowerISA::RemoteGDB::Power64GdbRegCache, gem5::SparcISA::RemoteGDB::SPARC64GdbRegCache, gem5::X86ISA::RemoteGDB::X86GdbRegCache, gem5::ArmISA::RemoteGDB::AArch32GdbRegCache, gem5::PowerISA::RemoteGDB::PowerGdbRegCache, gem5::MipsISA::RemoteGDB::MipsGdbRegCache, and gem5::SparcISA::RemoteGDB::SPARCGdbRegCache.
Referenced by gem5::BaseRemoteGDB::cmdRegW().
|
pure virtual |
Return the size of the raw buffer, in bytes (i.e., half of the number of digits in the g/G packet).
Implemented in gem5::X86ISA::RemoteGDB::AMD64GdbRegCache, gem5::RiscvISA::RemoteGDB::RiscvGdbRegCache, gem5::ArmISA::RemoteGDB::AArch64GdbRegCache, gem5::PowerISA::RemoteGDB::Power64GdbRegCache, gem5::SparcISA::RemoteGDB::SPARC64GdbRegCache, gem5::X86ISA::RemoteGDB::X86GdbRegCache, gem5::ArmISA::RemoteGDB::AArch32GdbRegCache, gem5::PowerISA::RemoteGDB::PowerGdbRegCache, gem5::MipsISA::RemoteGDB::MipsGdbRegCache, and gem5::SparcISA::RemoteGDB::SPARCGdbRegCache.
Referenced by gem5::BaseRemoteGDB::cmdRegR(), and gem5::BaseRemoteGDB::cmdRegW().
void gem5::BaseRemoteGDB::trap | ( | ContextID | id, |
int | signum | ||
) |
|
virtual |