gem5
v22.1.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 510 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 460 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 393 of file remote_gdb.cc.
void gem5::BaseRemoteGDB::connect | ( | ) |
Definition at line 434 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::X86ISA::RemoteGDB::X86GdbRegCache, gem5::SparcISA::RemoteGDB::SPARC64GdbRegCache, gem5::SparcISA::RemoteGDB::SPARCGdbRegCache, gem5::RiscvISA::RemoteGDB::RiscvGdbRegCache, gem5::PowerISA::RemoteGDB::Power64GdbRegCache, gem5::PowerISA::RemoteGDB::PowerGdbRegCache, gem5::MipsISA::RemoteGDB::MipsGdbRegCache, gem5::ArmISA::RemoteGDB::AArch64GdbRegCache, and gem5::ArmISA::RemoteGDB::AArch32GdbRegCache.
Referenced by gem5::BaseRemoteGDB::cmdRegR(), and gem5::BaseRemoteGDB::cmdRegW().
void gem5::BaseRemoteGDB::detach | ( | ) |
Definition at line 485 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(), gem5::BaseRemoteGDB::cmdVKill(), and gem5::BaseRemoteGDB::processCommands().
|
pure virtual |
Fill the raw buffer from the registers in the ThreadContext.
Implemented in gem5::X86ISA::RemoteGDB::AMD64GdbRegCache, gem5::X86ISA::RemoteGDB::X86GdbRegCache, gem5::SparcISA::RemoteGDB::SPARC64GdbRegCache, gem5::SparcISA::RemoteGDB::SPARCGdbRegCache, gem5::RiscvISA::RemoteGDB::RiscvGdbRegCache, gem5::PowerISA::RemoteGDB::Power64GdbRegCache, gem5::PowerISA::RemoteGDB::PowerGdbRegCache, gem5::MipsISA::RemoteGDB::MipsGdbRegCache, gem5::ArmISA::RemoteGDB::AArch64GdbRegCache, and gem5::ArmISA::RemoteGDB::AArch32GdbRegCache.
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 413 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 407 of file remote_gdb.cc.
References gem5::Named::name(), and gem5::BaseRemoteGDB::sys.
Referenced by gem5::BaseRemoteGDB::listen(), gem5::ArmISA::RemoteGDB::AArch32GdbRegCache::name(), gem5::ArmISA::RemoteGDB::AArch64GdbRegCache::name(), gem5::MipsISA::RemoteGDB::MipsGdbRegCache::name(), gem5::PowerISA::RemoteGDB::PowerGdbRegCache::name(), gem5::PowerISA::RemoteGDB::Power64GdbRegCache::name(), gem5::RiscvISA::RemoteGDB::RiscvGdbRegCache::name(), gem5::SparcISA::RemoteGDB::SPARCGdbRegCache::name(), gem5::SparcISA::RemoteGDB::SPARC64GdbRegCache::name(), gem5::X86ISA::RemoteGDB::X86GdbRegCache::name(), gem5::X86ISA::RemoteGDB::AMD64GdbRegCache::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::X86ISA::RemoteGDB::AMD64GdbRegCache, gem5::X86ISA::RemoteGDB::X86GdbRegCache, gem5::SparcISA::RemoteGDB::SPARC64GdbRegCache, gem5::SparcISA::RemoteGDB::SPARCGdbRegCache, gem5::RiscvISA::RemoteGDB::RiscvGdbRegCache, gem5::PowerISA::RemoteGDB::Power64GdbRegCache, gem5::PowerISA::RemoteGDB::PowerGdbRegCache, gem5::MipsISA::RemoteGDB::MipsGdbRegCache, gem5::ArmISA::RemoteGDB::AArch64GdbRegCache, and gem5::ArmISA::RemoteGDB::AArch32GdbRegCache.
int gem5::BaseRemoteGDB::port | ( | ) | const |
Definition at line 452 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 | ) |
void gem5::BaseRemoteGDB::scheduleTrapEvent | ( | ContextID | id, |
int | type, | ||
int | delta, | ||
std::string | stopReason | ||
) |
Definition at line 973 of file remote_gdb.cc.
References gem5::ArmISA::id, gem5::BaseRemoteGDB::TrapEvent::id(), panic_if, gem5::Event::scheduled(), gem5::BaseRemoteGDB::scheduleInstCommitEvent(), gem5::BaseRemoteGDB::TrapEvent::stopReason(), gem5::BaseRemoteGDB::threads, gem5::BaseRemoteGDB::trapEvent, gem5::X86ISA::type, and gem5::BaseRemoteGDB::TrapEvent::type().
Referenced by gem5::BaseRemoteGDB::cmdSetThread(), and gem5::BaseRemoteGDB::incomingData().
bool gem5::BaseRemoteGDB::selectThreadContext | ( | ContextID | id | ) |
Definition at line 533 of file remote_gdb.cc.
References gem5::BaseGdbRegCache::getRegs(), gem5::BaseRemoteGDB::regCachePtr, gem5::BaseRemoteGDB::tc, and gem5::BaseRemoteGDB::threads.
Referenced by gem5::BaseRemoteGDB::addThreadContext(), gem5::BaseRemoteGDB::cmdSetThread(), and gem5::BaseRemoteGDB::trap().
bool gem5::BaseRemoteGDB::sendMessage | ( | std::string | message | ) |
Definition at line 585 of file remote_gdb.cc.
References gem5::BaseRemoteGDB::attached, DPRINTF, and gem5::BaseRemoteGDB::sendOPacket().
Referenced by gem5::Workload::sendToGdb().
|
pure virtual |
Set the ThreadContext's registers from the values in the raw buffer.
Implemented in gem5::X86ISA::RemoteGDB::AMD64GdbRegCache, gem5::X86ISA::RemoteGDB::X86GdbRegCache, gem5::SparcISA::RemoteGDB::SPARC64GdbRegCache, gem5::SparcISA::RemoteGDB::SPARCGdbRegCache, gem5::RiscvISA::RemoteGDB::RiscvGdbRegCache, gem5::PowerISA::RemoteGDB::Power64GdbRegCache, gem5::PowerISA::RemoteGDB::PowerGdbRegCache, gem5::MipsISA::RemoteGDB::MipsGdbRegCache, gem5::ArmISA::RemoteGDB::AArch64GdbRegCache, and gem5::ArmISA::RemoteGDB::AArch32GdbRegCache.
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::X86ISA::RemoteGDB::X86GdbRegCache, gem5::SparcISA::RemoteGDB::SPARC64GdbRegCache, gem5::SparcISA::RemoteGDB::SPARCGdbRegCache, gem5::RiscvISA::RemoteGDB::RiscvGdbRegCache, gem5::PowerISA::RemoteGDB::Power64GdbRegCache, gem5::PowerISA::RemoteGDB::PowerGdbRegCache, gem5::MipsISA::RemoteGDB::MipsGdbRegCache, gem5::ArmISA::RemoteGDB::AArch64GdbRegCache, and gem5::ArmISA::RemoteGDB::AArch32GdbRegCache.
Referenced by gem5::BaseRemoteGDB::cmdRegR(), and gem5::BaseRemoteGDB::cmdRegW().
void gem5::BaseRemoteGDB::trap | ( | ContextID | id, |
int | signum, | ||
const std::string & | stopReason = "" |
||
) |
Definition at line 552 of file remote_gdb.cc.
References gem5::BaseRemoteGDB::attached, gem5::BaseRemoteGDB::clearSingleStep(), gem5::ThreadContext::contextId(), DPRINTF, gem5::ThreadContext::pcState(), gem5::BaseRemoteGDB::processCommands(), gem5::BaseRemoteGDB::selectThreadContext(), gem5::BaseRemoteGDB::send(), gem5::BaseRemoteGDB::sendTPacket(), gem5::BaseRemoteGDB::singleStepEvent, gem5::BaseRemoteGDB::tc, and gem5::BaseRemoteGDB::threadSwitching.
|
virtual |