gem5 v25.0.0.1
Loading...
Searching...
No Matches
gem5::RiscvISA::RemoteGDB Class Reference

#include <remote_gdb.hh>

Inheritance diagram for gem5::RiscvISA::RemoteGDB:
gem5::BaseRemoteGDB

Classes

class  Riscv32GdbRegCache
class  Riscv64GdbRegCache

Public Member Functions

 RemoteGDB (System *_system, ListenSocketConfig _listen_config)
BaseGdbRegCachegdbRegs () 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 ListenSockethostSocket () 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>
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)
ThreadContextcontext ()
Systemsystem ()
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
IncomingConnectionEventincomingConnectionEvent
IncomingDataEventincomingDataEvent
ListenSocketPtr listener
int fd
bool attached = false
bool threadSwitching = false
Systemsys
std::map< ContextID, ThreadContext * > threads
ThreadContexttc = nullptr
BaseGdbRegCacheregCachePtr = nullptr
MemberEventWrapper<&BaseRemoteGDB::connectconnectEvent
MemberEventWrapper<&BaseRemoteGDB::detachdisconnectEvent
gem5::BaseRemoteGDB::TrapEvent trapEvent
MemberEventWrapper<&BaseRemoteGDB::singleStepsingleStepEvent
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, GdbCommandcommandMap
static std::map< std::string, GdbMultiLetterCommandmultiLetterMap
static std::map< std::string, QuerySetCommandqueryMap

Additional Inherited Members

Static Public Member Functions inherited from gem5::BaseRemoteGDB
template<class GDBStub, class ... Args>
static BaseRemoteGDBbuild (ListenSocketConfig listen_config, Args... args)
Protected Types inherited from gem5::BaseRemoteGDB
typedef SocketEvent<&BaseRemoteGDB::incomingConnectionIncomingConnectionEvent
typedef SocketEvent<&BaseRemoteGDB::incomingDataIncomingDataEvent

Detailed Description

Definition at line 53 of file remote_gdb.hh.

Constructor & Destructor Documentation

◆ RemoteGDB()

Member Function Documentation

◆ acc()

bool gem5::RiscvISA::RemoteGDB::acc ( Addr addr,
size_t len )
overrideprotectedvirtual

◆ availableFeatures()

std::vector< std::string > gem5::RiscvISA::RemoteGDB::availableFeatures ( ) const
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 228 of file remote_gdb.hh.

◆ checkBpKind()

bool gem5::RiscvISA::RemoteGDB::checkBpKind ( size_t kind)
inlineoverrideprotectedvirtual

Reimplemented from gem5::BaseRemoteGDB.

Definition at line 61 of file remote_gdb.hh.

◆ gdbRegs()

BaseGdbRegCache * gem5::RiscvISA::RemoteGDB::gdbRegs ( )
overridevirtual

Implements gem5::BaseRemoteGDB.

◆ getPrivilegeModeSet()

◆ getRvType()

RiscvType gem5::RemoteGDB::getRvType ( ThreadContext * tc)
virtual

Definition at line 195 of file remote_gdb.cc.

References getRvType(), panic_if, and gem5::BaseRemoteGDB::tc.

Referenced by getRvType(), insertHardBreak(), and removeHardBreak().

◆ getXferFeaturesRead()

bool gem5::RiscvISA::RemoteGDB::getXferFeaturesRead ( const std::string & annex,
std::string & output )
overridevirtual

Reply to qXfer:features:read:xxx.xml qeuries.

Reimplemented from gem5::BaseRemoteGDB.

References gem5::output(), and gem5::BaseRemoteGDB::tc.

◆ insertHardBreak()

void gem5::RemoteGDB::insertHardBreak ( Addr addr,
size_t kind )
overrideprotectedvirtual

◆ removeHardBreak()

void gem5::RemoteGDB::removeHardBreak ( Addr addr,
size_t kind )
overrideprotectedvirtual

Member Data Documentation

◆ NumCSRs

const int gem5::RiscvISA::RemoteGDB::NumCSRs = 4096
staticprotected

Definition at line 57 of file remote_gdb.hh.

◆ NumGDBRegs

const int gem5::RiscvISA::RemoteGDB::NumGDBRegs = 4162
staticprotected

Definition at line 56 of file remote_gdb.hh.

◆ regCache32

Riscv32GdbRegCache gem5::RiscvISA::RemoteGDB::regCache32
protected

Definition at line 217 of file remote_gdb.hh.

◆ regCache64

Riscv64GdbRegCache gem5::RiscvISA::RemoteGDB::regCache64
protected

Definition at line 218 of file remote_gdb.hh.


The documentation for this class was generated from the following files:

Generated on Sat Oct 18 2025 08:07:01 for gem5 by doxygen 1.14.0