|
gem5 [DEVELOP-FOR-25.0]
|
These methods relate to the BaseRemoteGDB and BaseGdbRegCache interfaces. More...
Functions | |
| virtual char * | gem5::BaseGdbRegCache::data ()=0 |
| Return the pointer to the raw bytes buffer containing the register values. | |
| virtual size_t | gem5::BaseGdbRegCache::size () const =0 |
| Return the size of the raw buffer, in bytes (i.e., half of the number of digits in the g/G packet). | |
| virtual void | gem5::BaseGdbRegCache::getRegs (ThreadContext *)=0 |
| Fill the raw buffer from the registers in the ThreadContext. | |
| virtual void | gem5::BaseGdbRegCache::setRegs (ThreadContext *) const =0 |
| Set the ThreadContext's registers from the values in the raw buffer. | |
| virtual const std::string | gem5::BaseGdbRegCache::name () const =0 |
| Return the name to use in places like DPRINTF. | |
| gem5::BaseGdbRegCache::BaseGdbRegCache (BaseRemoteGDB *g) | |
| gem5::BaseRemoteGDB::BaseRemoteGDB (System *system, ListenSocketConfig _listen_config) | |
| Interface to other parts of the simulator. | |
| virtual | gem5::BaseRemoteGDB::~BaseRemoteGDB () |
| std::string | gem5::BaseRemoteGDB::name () |
| void | gem5::BaseRemoteGDB::listen () |
| void | gem5::BaseRemoteGDB::connect () |
| const ListenSocket & | gem5::BaseRemoteGDB::hostSocket () const |
| void | gem5::BaseRemoteGDB::attach (int fd) |
| void | gem5::BaseRemoteGDB::detach () |
| bool | gem5::BaseRemoteGDB::isAttached () |
| void | gem5::BaseRemoteGDB::addThreadContext (ThreadContext *_tc) |
| void | gem5::BaseRemoteGDB::replaceThreadContext (ThreadContext *_tc) |
| bool | gem5::BaseRemoteGDB::selectThreadContext (ContextID id) |
| void | gem5::BaseRemoteGDB::trap (ContextID id, GDBSignal sig, const std::string &stopReason="") |
| bool | gem5::BaseRemoteGDB::sendMessage (std::string message) |
| void | gem5::BaseRemoteGDB::scheduleTrapEvent (ContextID id, GDBSignal type, int delta, std::string stopReason) |
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(), listen(), listener, selectThreadContext(), tc, and threads.
| void gem5::BaseRemoteGDB::attach | ( | int | fd | ) |
Definition at line 456 of file remote_gdb.cc.
References attached, DPRINTFN, gem5::ArmISA::f, fd, incomingDataEvent, isAttached(), gem5::pollQueue, and processCommands().
Referenced by connect().
|
inline |
Definition at line 134 of file remote_gdb.hh.
References gem5::MipsISA::g, and gdb.
| 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(), connectEvent, disconnectEvent, fd, incomingConnectionEvent, incomingDataEvent, listener, name(), singleStepEvent, sys, and trapEvent.
Referenced by gem5::ArmISA::RemoteGDB::RemoteGDB(), replaceThreadContext(), gem5::BaseRemoteGDB::SocketEvent<&BaseRemoteGDB::incomingConnection >::SocketEvent(), and gem5::BaseRemoteGDB::TrapEvent::TrapEvent().
| void gem5::BaseRemoteGDB::connect | ( | ) |
Definition at line 430 of file remote_gdb.cc.
References attach(), incomingConnectionEvent, isAttached(), listener, panic_if, and gem5::pollQueue.
|
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.
| void gem5::BaseRemoteGDB::detach | ( | ) |
Definition at line 481 of file remote_gdb.cc.
References attached, clearSingleStep(), DPRINTFN, fd, incomingConnectionEvent, incomingDataEvent, and gem5::pollQueue.
Referenced by cmdDetach(), cmdVKill(), and 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.
| const ListenSocket & gem5::BaseRemoteGDB::hostSocket | ( | ) | const |
Definition at line 448 of file remote_gdb.cc.
|
inline |
Definition at line 168 of file remote_gdb.hh.
References attached.
| void gem5::BaseRemoteGDB::listen | ( | ) |
Definition at line 415 of file remote_gdb.cc.
References gem5::ListenSocket::allDisabled(), incomingConnectionEvent, listener, gem5::pollQueue, and warn_once.
Referenced by 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 | ( | ) |
| void gem5::BaseRemoteGDB::replaceThreadContext | ( | ThreadContext * | _tc | ) |
References BaseRemoteGDB().
| 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, panic_if, scheduleInstCommitEvent(), threads, and trapEvent.
Referenced by cmdSetThread(), and incomingData().
| bool gem5::BaseRemoteGDB::selectThreadContext | ( | ContextID | id | ) |
Definition at line 529 of file remote_gdb.cc.
References regCachePtr, tc, and threads.
Referenced by addThreadContext(), cmdSetThread(), and trap().
| bool gem5::BaseRemoteGDB::sendMessage | ( | std::string | message | ) |
Definition at line 583 of file remote_gdb.cc.
References attached, DPRINTF, and sendOPacket().
|
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.
|
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.
| void gem5::BaseRemoteGDB::trap | ( | ContextID | id, |
| GDBSignal | sig, | ||
| const std::string & | stopReason = "" ) |
Definition at line 548 of file remote_gdb.cc.
References attached, clearSingleStep(), DPRINTF, processCommands(), selectThreadContext(), send(), sendTPacket(), singleStepEvent, tc, and threadSwitching.
|
virtual |
References fd.