gem5 v24.0.0.0
Loading...
Searching...
No Matches
gem5::ArmISA::RemoteGDB Class Reference

#include <remote_gdb.hh>

Inheritance diagram for gem5::ArmISA::RemoteGDB:
gem5::BaseRemoteGDB gem5::fastmodel::FastmodelRemoteGDB

Classes

class  AArch32GdbRegCache
 
class  AArch64GdbRegCache
 

Public Member Functions

 RemoteGDB (System *_system, ListenSocketConfig _listen_config)
 
BaseGdbRegCachegdbRegs () override
 
bool checkBpKind (size_t kind) override
 
std::vector< std::string > availableFeatures () const override
 
bool getXferFeaturesRead (const std::string &annex, std::string &output) override
 Get an XML target description.
 
- 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
 
- 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

AArch32GdbRegCache regCache32
 
AArch64GdbRegCache 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
 

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
 
- Static Protected Attributes inherited from gem5::BaseRemoteGDB
static std::map< char, GdbCommandcommandMap
 
static std::map< std::string, GdbMultiLetterCommandmultiLetterMap
 
static std::map< std::string, QuerySetCommandqueryMap
 

Detailed Description

Definition at line 63 of file remote_gdb.hh.

Constructor & Destructor Documentation

◆ RemoteGDB()

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

Definition at line 204 of file remote_gdb.cc.

Member Function Documentation

◆ acc()

◆ availableFeatures()

std::vector< std::string > gem5::ArmISA::RemoteGDB::availableFeatures ( ) const
inlineoverridevirtual

Reimplemented from gem5::BaseRemoteGDB.

Definition at line 125 of file remote_gdb.hh.

◆ checkBpKind()

bool gem5::RemoteGDB::checkBpKind ( size_t kind)
overridevirtual

Reimplemented from gem5::BaseRemoteGDB.

Definition at line 383 of file remote_gdb.cc.

◆ gdbRegs()

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

◆ getXferFeaturesRead()

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

Get an XML target description.

Parameters
[in]annexthe XML filename
[out]outputset to the decoded XML
Returns
true if the given annex was found

Blobs e.g. gdb_xml_riscv_target are generated by adding GdbXml(<xml_file_name>, <blob_name>) to src/arch/riscv/Sconscript.

Import using #include blobs/<blob_name>.hh

Reimplemented from gem5::BaseRemoteGDB.

Definition at line 349 of file remote_gdb.cc.

References gem5::BaseRemoteGDB::context(), GDB_XML, gem5::ArmISA::inAArch64(), and gem5::output().

Member Data Documentation

◆ regCache32

AArch32GdbRegCache gem5::ArmISA::RemoteGDB::regCache32
protected

Definition at line 117 of file remote_gdb.hh.

Referenced by gdbRegs(), and gem5::fastmodel::FastmodelRemoteGDB::gdbRegs().

◆ regCache64

AArch64GdbRegCache gem5::ArmISA::RemoteGDB::regCache64
protected

Definition at line 118 of file remote_gdb.hh.

Referenced by gdbRegs().


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

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