gem5 v24.0.0.0
|
These methods relate to the BaseRemoteGDB and BaseGdbRegCache interfaces.
void gem5::BaseRemoteGDB::addThreadContext | ( | ThreadContext * | _tc | ) |
Definition at line 506 of file remote_gdb.cc.
References gem5::ThreadContext::contextId(), 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 456 of file remote_gdb.cc.
References gem5::BaseRemoteGDB::attached, DPRINTFN, gem5::ArmISA::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, |
ListenSocketConfig | _listen_config ) |
Interface to other parts of the simulator.
Definition at line 393 of file remote_gdb.cc.
References gem5::ListenSocketConfig::build(), gem5::BaseRemoteGDB::listener, and gem5::BaseRemoteGDB::name().
void gem5::BaseRemoteGDB::connect | ( | ) |
Definition at line 430 of file remote_gdb.cc.
References gem5::BaseRemoteGDB::attach(), gem5::BaseRemoteGDB::incomingConnectionEvent, gem5::BaseRemoteGDB::isAttached(), 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::ArmISA::RemoteGDB::AArch32GdbRegCache, gem5::ArmISA::RemoteGDB::AArch64GdbRegCache, gem5::MipsISA::RemoteGDB::MipsGdbRegCache, gem5::PowerISA::RemoteGDB::Power64GdbRegCache, gem5::PowerISA::RemoteGDB::PowerGdbRegCache, gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache, gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache, gem5::SparcISA::RemoteGDB::SPARC64GdbRegCache, gem5::SparcISA::RemoteGDB::SPARCGdbRegCache, gem5::X86ISA::RemoteGDB::AMD64GdbRegCache, and gem5::X86ISA::RemoteGDB::X86GdbRegCache.
Referenced by gem5::BaseRemoteGDB::cmdRegR(), and gem5::BaseRemoteGDB::cmdRegW().
void gem5::BaseRemoteGDB::detach | ( | ) |
Definition at line 481 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::ArmISA::RemoteGDB::AArch32GdbRegCache, gem5::ArmISA::RemoteGDB::AArch64GdbRegCache, gem5::MipsISA::RemoteGDB::MipsGdbRegCache, gem5::PowerISA::RemoteGDB::Power64GdbRegCache, gem5::PowerISA::RemoteGDB::PowerGdbRegCache, gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache, gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache, gem5::SparcISA::RemoteGDB::SPARC64GdbRegCache, gem5::SparcISA::RemoteGDB::SPARCGdbRegCache, gem5::X86ISA::RemoteGDB::AMD64GdbRegCache, and gem5::X86ISA::RemoteGDB::X86GdbRegCache.
Referenced by gem5::BaseRemoteGDB::processCommands(), and gem5::BaseRemoteGDB::selectThreadContext().
const ListenSocket & gem5::BaseRemoteGDB::hostSocket | ( | ) | const |
Definition at line 448 of file remote_gdb.cc.
References gem5::BaseRemoteGDB::listener, and panic_if.
Referenced by gem5::Workload::startup().
|
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 415 of file remote_gdb.cc.
References gem5::ListenSocket::allDisabled(), gem5::BaseRemoteGDB::incomingConnectionEvent, gem5::BaseRemoteGDB::listener, gem5::pollQueue, gem5::PollQueue::schedule(), and warn_once.
Referenced by gem5::BaseRemoteGDB::addThreadContext().
|
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::ArmISA::RemoteGDB::AArch32GdbRegCache, gem5::ArmISA::RemoteGDB::AArch64GdbRegCache, gem5::MipsISA::RemoteGDB::MipsGdbRegCache, gem5::PowerISA::RemoteGDB::Power64GdbRegCache, gem5::PowerISA::RemoteGDB::PowerGdbRegCache, gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache, gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache, gem5::SparcISA::RemoteGDB::SPARC64GdbRegCache, gem5::SparcISA::RemoteGDB::SPARCGdbRegCache, gem5::X86ISA::RemoteGDB::AMD64GdbRegCache, and gem5::X86ISA::RemoteGDB::X86GdbRegCache.
std::string gem5::BaseRemoteGDB::name | ( | ) |
Definition at line 409 of file remote_gdb.cc.
References gem5::Named::name(), and gem5::BaseRemoteGDB::sys.
Referenced by gem5::BaseRemoteGDB::BaseRemoteGDB(), gem5::ArmISA::RemoteGDB::AArch32GdbRegCache::name(), gem5::ArmISA::RemoteGDB::AArch64GdbRegCache::name(), gem5::HardBreakpoint::name(), gem5::MipsISA::RemoteGDB::MipsGdbRegCache::name(), gem5::PowerISA::RemoteGDB::Power64GdbRegCache::name(), gem5::PowerISA::RemoteGDB::PowerGdbRegCache::name(), gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::name(), gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::name(), gem5::SparcISA::RemoteGDB::SPARC64GdbRegCache::name(), gem5::SparcISA::RemoteGDB::SPARCGdbRegCache::name(), gem5::X86ISA::RemoteGDB::AMD64GdbRegCache::name(), and gem5::X86ISA::RemoteGDB::X86GdbRegCache::name().
void gem5::BaseRemoteGDB::replaceThreadContext | ( | ThreadContext * | _tc | ) |
void gem5::BaseRemoteGDB::scheduleTrapEvent | ( | ContextID | id, |
GDBSignal | 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, and gem5::BaseRemoteGDB::TrapEvent::type().
Referenced by gem5::BaseRemoteGDB::cmdSetThread(), and gem5::BaseRemoteGDB::incomingData().
bool gem5::BaseRemoteGDB::selectThreadContext | ( | ContextID | id | ) |
Definition at line 529 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 583 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::ArmISA::RemoteGDB::AArch32GdbRegCache, gem5::ArmISA::RemoteGDB::AArch64GdbRegCache, gem5::fastmodel::FastmodelRemoteGDB::AArch64GdbRegCache, gem5::MipsISA::RemoteGDB::MipsGdbRegCache, gem5::PowerISA::RemoteGDB::Power64GdbRegCache, gem5::PowerISA::RemoteGDB::PowerGdbRegCache, gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache, gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache, gem5::SparcISA::RemoteGDB::SPARC64GdbRegCache, gem5::SparcISA::RemoteGDB::SPARCGdbRegCache, gem5::X86ISA::RemoteGDB::AMD64GdbRegCache, and gem5::X86ISA::RemoteGDB::X86GdbRegCache.
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::ArmISA::RemoteGDB::AArch32GdbRegCache, gem5::ArmISA::RemoteGDB::AArch64GdbRegCache, gem5::MipsISA::RemoteGDB::MipsGdbRegCache, gem5::PowerISA::RemoteGDB::Power64GdbRegCache, gem5::PowerISA::RemoteGDB::PowerGdbRegCache, gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache, gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache, gem5::SparcISA::RemoteGDB::SPARC64GdbRegCache, gem5::SparcISA::RemoteGDB::SPARCGdbRegCache, gem5::X86ISA::RemoteGDB::AMD64GdbRegCache, and gem5::X86ISA::RemoteGDB::X86GdbRegCache.
Referenced by gem5::BaseRemoteGDB::cmdRegR(), and gem5::BaseRemoteGDB::cmdRegW().
void gem5::BaseRemoteGDB::trap | ( | ContextID | id, |
GDBSignal | sig, | ||
const std::string & | stopReason = "" ) |
Definition at line 548 of file remote_gdb.cc.
References gem5::BaseRemoteGDB::attached, gem5::BaseRemoteGDB::clearSingleStep(), gem5::ThreadContext::contextId(), DPRINTF, gem5::ThreadContext::pcState(), gem5::BaseRemoteGDB::processCommands(), gem5::Event::scheduled(), gem5::BaseRemoteGDB::selectThreadContext(), gem5::BaseRemoteGDB::send(), gem5::BaseRemoteGDB::sendTPacket(), gem5::BaseRemoteGDB::singleStepEvent, gem5::BaseRemoteGDB::tc, and gem5::BaseRemoteGDB::threadSwitching.
|
virtual |