|
gem5 [DEVELOP-FOR-25.0]
|
#include <remote_gdb.hh>
Classes | |
| class | Riscv32GdbRegCache |
| class | Riscv64GdbRegCache |
Public Member Functions | |
| RemoteGDB (System *_system, ListenSocketConfig _listen_config) | |
| BaseGdbRegCache * | gdbRegs () override |
| std::vector< std::string > | availableFeatures () const override |
| Informs GDB remote serial protocol that XML features are supported GDB then queries for xml blobs using qXfer:features:read:xxx.xml. | |
| bool | getXferFeaturesRead (const std::string &annex, std::string &output) override |
| Reply to qXfer:features:read:xxx.xml qeuries. | |
| virtual RiscvType | getRvType (ThreadContext *tc) |
| virtual PrivilegeModeSet | getPrivilegeModeSet (ThreadContext *tc) |
Public Member Functions inherited from gem5::BaseRemoteGDB | |
| bool | breakpoint () |
| void | replaceThreadContext (ThreadContext *tc) |
| bool | trap (ContextID id, int type) |
| virtual | ~BaseRemoteGDB () |
| BaseRemoteGDB (System *system, ListenSocketConfig _listen_config) | |
| Interface to other parts of the simulator. | |
| virtual | ~BaseRemoteGDB () |
| std::string | name () |
| void | listen () |
| void | connect () |
| const ListenSocket & | hostSocket () const |
| void | attach (int fd) |
| void | detach () |
| bool | isAttached () |
| void | addThreadContext (ThreadContext *_tc) |
| void | replaceThreadContext (ThreadContext *_tc) |
| bool | selectThreadContext (ContextID id) |
| void | trap (ContextID id, GDBSignal sig, const std::string &stopReason="") |
| bool | sendMessage (std::string message) |
| void | scheduleTrapEvent (ContextID id, GDBSignal type, int delta, std::string stopReason) |
Protected Member Functions | |
| bool | acc (Addr addr, size_t len) override |
| bool | checkBpKind (size_t kind) override |
| void | insertHardBreak (Addr addr, size_t kind) override |
| void | removeHardBreak (Addr addr, size_t kind) override |
Protected Member Functions inherited from gem5::BaseRemoteGDB | |
| void | incomingData (int revent) |
| void | incomingConnection (int revent) |
| uint8_t | getbyte () |
| bool | try_getbyte (uint8_t *c, int timeout=-1) |
| void | putbyte (uint8_t b) |
| void | recv (std::vector< char > &bp) |
| void | send (const char *data) |
| void | send (const std::string &data) |
| template<typename ... Args> | |
| void | send (const char *format, const Args &...args) |
| void | processCommands (GDBSignal sig=GDBSignal::ZERO) |
| virtual bool | readBlob (Addr vaddr, size_t size, char *data) |
| virtual bool | writeBlob (Addr vaddr, size_t size, const char *data) |
| bool | read (Addr vaddr, size_t size, char *data) |
| bool | write (Addr vaddr, size_t size, const char *data) |
| template<class T> | |
| T | read (Addr addr) |
| template<class T> | |
| void | write (Addr addr, T data) |
| void | singleStep () |
| void | clearSingleStep () |
| void | setSingleStep () |
| void | scheduleInstCommitEvent (Event *ev, int delta, ThreadContext *_tc) |
| Schedule an event which will be triggered "delta" instructions later. | |
| void | scheduleInstCommitEvent (Event *ev, int delta) |
| void | descheduleInstCommitEvent (Event *ev) |
| Deschedule an instruction count based event. | |
| virtual void | insertSoftBreak (Addr addr, size_t kind) |
| virtual void | removeSoftBreak (Addr addr, size_t kind) |
| void | sendTPacket (GDBSignal sig, ContextID id, const std::string &stopReason) |
| void | sendSPacket (GDBSignal sig) |
| void | sendOPacket (const std::string message) |
| bool | cmdUnsupported (GdbCommand::Context &ctx) |
| bool | cmdSignal (GdbCommand::Context &ctx) |
| bool | cmdCont (GdbCommand::Context &ctx) |
| bool | cmdAsyncCont (GdbCommand::Context &ctx) |
| bool | cmdDetach (GdbCommand::Context &ctx) |
| bool | cmdRegR (GdbCommand::Context &ctx) |
| bool | cmdRegW (GdbCommand::Context &ctx) |
| bool | cmdSetThread (GdbCommand::Context &ctx) |
| bool | cmdIsThreadAlive (GdbCommand::Context &ctx) |
| bool | cmdMemR (GdbCommand::Context &ctx) |
| bool | cmdMemW (GdbCommand::Context &ctx) |
| bool | cmdQueryVar (GdbCommand::Context &ctx) |
| bool | cmdStep (GdbCommand::Context &ctx) |
| bool | cmdAsyncStep (GdbCommand::Context &ctx) |
| bool | cmdClrHwBkpt (GdbCommand::Context &ctx) |
| bool | cmdSetHwBkpt (GdbCommand::Context &ctx) |
| bool | cmdDumpPageTable (GdbCommand::Context &ctx) |
| bool | cmdMultiLetter (GdbCommand::Context &ctx) |
| bool | cmdMultiUnsupported (GdbMultiLetterCommand::Context &ctx) |
| bool | cmdReplyEmpty (GdbMultiLetterCommand::Context &ctx) |
| bool | cmdVKill (GdbMultiLetterCommand::Context &ctx) |
| bool | queryC (QuerySetCommand::Context &ctx) |
| bool | querySupported (QuerySetCommand::Context &ctx) |
| bool | queryXfer (QuerySetCommand::Context &ctx) |
| bool | querySymbol (QuerySetCommand::Context &ctx) |
| bool | queryRcmd (QuerySetCommand::Context &ctx) |
| bool | queryAttached (QuerySetCommand::Context &ctx) |
| bool | queryFThreadInfo (QuerySetCommand::Context &ctx) |
| bool | querySThreadInfo (QuerySetCommand::Context &ctx) |
| ThreadContext * | context () |
| System * | system () |
| void | encodeBinaryData (const std::string &unencoded, std::string &encoded) const |
| void | encodeXferResponse (const std::string &unencoded, std::string &encoded, size_t offset, size_t unencoded_length) const |
Protected Attributes | |
| Riscv32GdbRegCache | regCache32 |
| Riscv64GdbRegCache | regCache64 |
Protected Attributes inherited from gem5::BaseRemoteGDB | |
| friend | IncomingConnectionEvent |
| friend | IncomingDataEvent |
| IncomingConnectionEvent * | incomingConnectionEvent |
| IncomingDataEvent * | incomingDataEvent |
| ListenSocketPtr | listener |
| int | fd |
| bool | attached = false |
| bool | threadSwitching = false |
| System * | sys |
| std::map< ContextID, ThreadContext * > | threads |
| ThreadContext * | tc = nullptr |
| BaseGdbRegCache * | regCachePtr = nullptr |
| MemberEventWrapper<&BaseRemoteGDB::connect > | connectEvent |
| MemberEventWrapper<&BaseRemoteGDB::detach > | disconnectEvent |
| gem5::BaseRemoteGDB::TrapEvent | trapEvent |
| MemberEventWrapper<&BaseRemoteGDB::singleStep > | singleStepEvent |
| size_t | threadInfoIdx = 0 |
Static Protected Attributes | |
| static const int | NumGDBRegs = 4162 |
| static const int | NumCSRs = 4096 |
Static Protected Attributes inherited from gem5::BaseRemoteGDB | |
| static std::map< char, GdbCommand > | commandMap |
| static std::map< std::string, GdbMultiLetterCommand > | multiLetterMap |
| static std::map< std::string, QuerySetCommand > | queryMap |
Additional Inherited Members | |
Static Public Member Functions inherited from gem5::BaseRemoteGDB | |
| template<class GDBStub, class ... Args> | |
| static BaseRemoteGDB * | build (ListenSocketConfig listen_config, Args... args) |
Protected Types inherited from gem5::BaseRemoteGDB | |
| typedef SocketEvent<&BaseRemoteGDB::incomingConnection > | IncomingConnectionEvent |
| typedef SocketEvent<&BaseRemoteGDB::incomingData > | IncomingDataEvent |
Definition at line 53 of file remote_gdb.hh.
| gem5::RiscvISA::RemoteGDB::RemoteGDB | ( | System * | _system, |
| ListenSocketConfig | _listen_config ) |
|
overrideprotectedvirtual |
Implements gem5::BaseRemoteGDB.
References gem5::X86ISA::addr, and gem5::ArmISA::len.
|
inlineoverridevirtual |
Informs GDB remote serial protocol that XML features are supported GDB then queries for xml blobs using qXfer:features:read:xxx.xml.
Reimplemented from gem5::BaseRemoteGDB.
Definition at line 248 of file remote_gdb.hh.
|
inlineoverrideprotectedvirtual |
Reimplemented from gem5::BaseRemoteGDB.
Definition at line 61 of file remote_gdb.hh.
|
overridevirtual |
Implements gem5::BaseRemoteGDB.
|
virtual |
Definition at line 203 of file remote_gdb.cc.
References getPrivilegeModeSet(), panic_if, and gem5::BaseRemoteGDB::tc.
Referenced by getPrivilegeModeSet(), gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::getRegs(), gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::getRegs(), gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::setRegs(), and gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::setRegs().
|
virtual |
Definition at line 195 of file remote_gdb.cc.
References getRvType(), panic_if, and gem5::BaseRemoteGDB::tc.
Referenced by getRvType(), insertHardBreak(), and removeHardBreak().
|
overridevirtual |
Reply to qXfer:features:read:xxx.xml qeuries.
Reimplemented from gem5::BaseRemoteGDB.
References gem5::output(), and gem5::BaseRemoteGDB::tc.
|
overrideprotectedvirtual |
Reimplemented from gem5::BaseRemoteGDB.
Definition at line 237 of file remote_gdb.cc.
References gem5::X86ISA::addr, gem5::BaseRemoteGDB::context(), getRvType(), gem5::BaseRemoteGDB::insertHardBreak(), insertHardBreak(), gem5::RiscvISA::RV64, and gem5::sext().
Referenced by insertHardBreak().
|
overrideprotectedvirtual |
Reimplemented from gem5::BaseRemoteGDB.
Definition at line 244 of file remote_gdb.cc.
References gem5::X86ISA::addr, gem5::BaseRemoteGDB::context(), getRvType(), gem5::BaseRemoteGDB::removeHardBreak(), removeHardBreak(), gem5::RiscvISA::RV64, and gem5::sext().
Referenced by removeHardBreak().
|
staticprotected |
Definition at line 57 of file remote_gdb.hh.
|
staticprotected |
Definition at line 56 of file remote_gdb.hh.
|
protected |
Definition at line 237 of file remote_gdb.hh.
|
protected |
Definition at line 238 of file remote_gdb.hh.