gem5 v24.0.0.0
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.
 
- 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
 
- 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.
 
void insertSoftBreak (Addr addr, size_t kind)
 
void removeSoftBreak (Addr addr, size_t kind)
 
void insertHardBreak (Addr addr, size_t kind)
 
void removeHardBreak (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 51 of file remote_gdb.hh.

Constructor & Destructor Documentation

◆ RemoteGDB()

gem5::RiscvISA::RemoteGDB::RemoteGDB ( System * _system,
ListenSocketConfig _listen_config )

Member Function Documentation

◆ acc()

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

Implements gem5::BaseRemoteGDB.

◆ 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 242 of file remote_gdb.hh.

◆ checkBpKind()

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

Reimplemented from gem5::BaseRemoteGDB.

Definition at line 59 of file remote_gdb.hh.

◆ gdbRegs()

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

Implements gem5::BaseRemoteGDB.

◆ 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.

Member Data Documentation

◆ NumCSRs

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

Definition at line 55 of file remote_gdb.hh.

◆ NumGDBRegs

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

Definition at line 54 of file remote_gdb.hh.

◆ regCache32

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

Definition at line 231 of file remote_gdb.hh.

◆ regCache64

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

Definition at line 232 of file remote_gdb.hh.


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

Generated on Tue Jun 18 2024 16:24:21 for gem5 by doxygen 1.11.0