gem5  v22.1.0.0
Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
gem5::BaseRemoteGDB Class Referenceabstract

#include <remote_gdb.hh>

Inheritance diagram for gem5::BaseRemoteGDB:
gem5::ArmISA::RemoteGDB gem5::MipsISA::RemoteGDB gem5::PowerISA::RemoteGDB gem5::RiscvISA::RemoteGDB gem5::SparcISA::RemoteGDB gem5::X86ISA::RemoteGDB gem5::fastmodel::FastmodelRemoteGDB

Classes

struct  GdbCommand
 
struct  GdbMultiLetterCommand
 
struct  QuerySetCommand
 
class  SocketEvent
 
class  TrapEvent
 

Public Member Functions

bool breakpoint ()
 
void replaceThreadContext (ThreadContext *tc)
 
bool trap (ContextID id, int type)
 
virtual ~BaseRemoteGDB ()
 
 BaseRemoteGDB (System *system, int _port)
 Interface to other parts of the simulator. More...
 
virtual ~BaseRemoteGDB ()
 
std::string name ()
 
void listen ()
 
void connect ()
 
int port () 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, int signum, const std::string &stopReason="")
 
bool sendMessage (std::string message)
 
void scheduleTrapEvent (ContextID id, int type, int delta, std::string stopReason)
 

Static Public Member Functions

template<class GDBStub , class ... Args>
static BaseRemoteGDBbuild (int port, Args... args)
 

Protected Member Functions

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
 
virtual bool checkBpKind (size_t kind)
 
virtual BaseGdbRegCachegdbRegs ()=0
 
virtual bool acc (Addr addr, size_t len)=0
 
virtual std::vector< std::string > availableFeatures () const
 
virtual bool getXferFeaturesRead (const std::string &annex, std::string &output)
 Get an XML target description. More...
 

Private Types

typedef SocketEvent<&BaseRemoteGDB::incomingConnectionIncomingConnectionEvent
 
typedef SocketEvent<&BaseRemoteGDB::incomingDataIncomingDataEvent
 

Private Member Functions

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 (int signum=0)
 
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. More...
 
void scheduleInstCommitEvent (Event *ev, int delta)
 
void descheduleInstCommitEvent (Event *ev)
 Deschedule an instruction count based event. More...
 
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 (int errnum, ContextID id, const std::string &stopReason)
 
void sendSPacket (int errnum)
 
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)
 
void queryC (QuerySetCommand::Context &ctx)
 
void querySupported (QuerySetCommand::Context &ctx)
 
void queryXfer (QuerySetCommand::Context &ctx)
 
void querySymbol (QuerySetCommand::Context &ctx)
 
void queryAttached (QuerySetCommand::Context &ctx)
 
void queryFThreadInfo (QuerySetCommand::Context &ctx)
 
void querySThreadInfo (QuerySetCommand::Context &ctx)
 

Private Attributes

friend IncomingConnectionEvent
 
friend IncomingDataEvent
 
IncomingConnectionEventincomingConnectionEvent
 
IncomingDataEventincomingDataEvent
 
ListenSocket listener
 
int _port
 
int fd
 
bool attached = false
 
bool threadSwitching = false
 
Systemsys
 
std::map< ContextID, ThreadContext * > threads
 
ThreadContexttc = nullptr
 
BaseGdbRegCacheregCachePtr = nullptr
 
EventWrapper< BaseRemoteGDB, &BaseRemoteGDB::connectconnectEvent
 
EventWrapper< BaseRemoteGDB, &BaseRemoteGDB::detachdisconnectEvent
 
gem5::BaseRemoteGDB::TrapEvent trapEvent
 
EventWrapper< BaseRemoteGDB, &BaseRemoteGDB::singleStepsingleStepEvent
 
size_t threadInfoIdx = 0
 

Static Private Attributes

static std::map< char, GdbCommandcommandMap
 
static std::map< std::string, GdbMultiLetterCommandmultiLetterMap
 
static std::map< std::string, QuerySetCommandqueryMap
 

Friends

class HardBreakpoint
 

Detailed Description

Definition at line 48 of file remote_gdb.hh.

Member Typedef Documentation

◆ IncomingConnectionEvent

Definition at line 224 of file remote_gdb.hh.

◆ IncomingDataEvent

Definition at line 226 of file remote_gdb.hh.

Constructor & Destructor Documentation

◆ ~BaseRemoteGDB()

gem5::BaseRemoteGDB::~BaseRemoteGDB ( )
inlinevirtual

Definition at line 57 of file remote_gdb.hh.

Member Function Documentation

◆ acc()

virtual bool gem5::BaseRemoteGDB::acc ( Addr  addr,
size_t  len 
)
protectedpure virtual

◆ availableFeatures()

std::vector< std::string > gem5::BaseRemoteGDB::availableFeatures ( ) const
protectedvirtual

◆ breakpoint()

bool gem5::BaseRemoteGDB::breakpoint ( )
inline

Definition at line 53 of file remote_gdb.hh.

◆ build()

template<class GDBStub , class ... Args>
static BaseRemoteGDB* gem5::BaseRemoteGDB::build ( int  port,
Args...  args 
)
inlinestatic

Definition at line 183 of file remote_gdb.hh.

References port().

◆ checkBpKind()

bool gem5::BaseRemoteGDB::checkBpKind ( size_t  kind)
protectedvirtual

◆ clearSingleStep()

void gem5::BaseRemoteGDB::clearSingleStep ( )
private

Definition at line 889 of file remote_gdb.cc.

References descheduleInstCommitEvent(), and singleStepEvent.

Referenced by cmdAsyncCont(), cmdCont(), detach(), and trap().

◆ cmdAsyncCont()

bool gem5::BaseRemoteGDB::cmdAsyncCont ( GdbCommand::Context ctx)
private

◆ cmdAsyncStep()

bool gem5::BaseRemoteGDB::cmdAsyncStep ( GdbCommand::Context ctx)
private

◆ cmdClrHwBkpt()

bool gem5::BaseRemoteGDB::cmdClrHwBkpt ( GdbCommand::Context ctx)
private

◆ cmdCont()

bool gem5::BaseRemoteGDB::cmdCont ( GdbCommand::Context ctx)
private

◆ cmdDetach()

bool gem5::BaseRemoteGDB::cmdDetach ( GdbCommand::Context ctx)
private

Definition at line 1115 of file remote_gdb.cc.

References detach().

◆ cmdDumpPageTable()

bool gem5::BaseRemoteGDB::cmdDumpPageTable ( GdbCommand::Context ctx)
private

◆ cmdIsThreadAlive()

bool gem5::BaseRemoteGDB::cmdIsThreadAlive ( GdbCommand::Context ctx)
private

◆ cmdMemR()

bool gem5::BaseRemoteGDB::cmdMemR ( GdbCommand::Context ctx)
private

◆ cmdMemW()

bool gem5::BaseRemoteGDB::cmdMemW ( GdbCommand::Context ctx)
private

◆ cmdMultiLetter()

bool gem5::BaseRemoteGDB::cmdMultiLetter ( GdbCommand::Context ctx)
private

◆ cmdMultiUnsupported()

bool gem5::BaseRemoteGDB::cmdMultiUnsupported ( GdbMultiLetterCommand::Context ctx)
private

◆ cmdQueryVar()

bool gem5::BaseRemoteGDB::cmdQueryVar ( GdbCommand::Context ctx)
private

◆ cmdRegR()

bool gem5::BaseRemoteGDB::cmdRegR ( GdbCommand::Context ctx)
private

◆ cmdRegW()

bool gem5::BaseRemoteGDB::cmdRegW ( GdbCommand::Context ctx)
private

◆ cmdReplyEmpty()

bool gem5::BaseRemoteGDB::cmdReplyEmpty ( GdbMultiLetterCommand::Context ctx)
private

Definition at line 1287 of file remote_gdb.cc.

References send().

◆ cmdSetHwBkpt()

bool gem5::BaseRemoteGDB::cmdSetHwBkpt ( GdbCommand::Context ctx)
private

◆ cmdSetThread()

bool gem5::BaseRemoteGDB::cmdSetThread ( GdbCommand::Context ctx)
private

◆ cmdSignal()

bool gem5::BaseRemoteGDB::cmdSignal ( GdbCommand::Context ctx)
private

◆ cmdStep()

bool gem5::BaseRemoteGDB::cmdStep ( GdbCommand::Context ctx)
private

◆ cmdUnsupported()

bool gem5::BaseRemoteGDB::cmdUnsupported ( GdbCommand::Context ctx)
private

◆ cmdVKill()

bool gem5::BaseRemoteGDB::cmdVKill ( GdbMultiLetterCommand::Context ctx)
private

Definition at line 1294 of file remote_gdb.cc.

References detach(), and warn.

◆ context()

ThreadContext* gem5::BaseRemoteGDB::context ( )
inlineprotected

◆ descheduleInstCommitEvent()

void gem5::BaseRemoteGDB::descheduleInstCommitEvent ( Event ev)
private

Deschedule an instruction count based event.

Definition at line 1000 of file remote_gdb.cc.

References gem5::ThreadContext::descheduleInstCountEvent(), gem5::Event::scheduled(), and tc.

Referenced by clearSingleStep(), and incomingData().

◆ encodeBinaryData()

void gem5::BaseRemoteGDB::encodeBinaryData ( const std::string &  unencoded,
std::string &  encoded 
) const
protected

Definition at line 1484 of file remote_gdb.cc.

References gem5::VegaISA::c.

Referenced by encodeXferResponse().

◆ encodeXferResponse()

void gem5::BaseRemoteGDB::encodeXferResponse ( const std::string &  unencoded,
std::string &  encoded,
size_t  offset,
size_t  unencoded_length 
) const
protected

Definition at line 1498 of file remote_gdb.cc.

References encodeBinaryData(), and gem5::ArmISA::offset.

Referenced by queryXfer().

◆ gdbRegs()

virtual BaseGdbRegCache* gem5::BaseRemoteGDB::gdbRegs ( )
protectedpure virtual

◆ getbyte()

uint8_t gem5::BaseRemoteGDB::getbyte ( )
private

Definition at line 624 of file remote_gdb.cc.

References gem5::ArmISA::b, and try_getbyte().

Referenced by recv(), and send().

◆ getXferFeaturesRead()

bool gem5::BaseRemoteGDB::getXferFeaturesRead ( const std::string &  annex,
std::string &  output 
)
protectedvirtual

Get an XML target description.

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

Reimplemented in gem5::RiscvISA::RemoteGDB, gem5::ArmISA::RemoteGDB, gem5::PowerISA::RemoteGDB, and gem5::MipsISA::RemoteGDB.

Definition at line 1477 of file remote_gdb.cc.

Referenced by queryXfer().

◆ incomingConnection()

void gem5::BaseRemoteGDB::incomingConnection ( int  revent)
private

Definition at line 595 of file remote_gdb.cc.

References connectEvent, scheduleInstCommitEvent(), and warn.

◆ incomingData()

void gem5::BaseRemoteGDB::incomingData ( int  revent)
private

◆ insertHardBreak()

void gem5::BaseRemoteGDB::insertHardBreak ( Addr  addr,
size_t  kind 
)
private

◆ insertSoftBreak()

void gem5::BaseRemoteGDB::insertSoftBreak ( Addr  addr,
size_t  kind 
)
private

Definition at line 902 of file remote_gdb.cc.

References gem5::X86ISA::addr, checkBpKind(), and insertHardBreak().

Referenced by cmdSetHwBkpt().

◆ processCommands()

void gem5::BaseRemoteGDB::processCommands ( int  signum = 0)
private

◆ putbyte()

void gem5::BaseRemoteGDB::putbyte ( uint8_t  b)
private

Definition at line 676 of file remote_gdb.cc.

References gem5::ArmISA::b, fd, and write().

Referenced by recv(), and send().

◆ queryAttached()

void gem5::BaseRemoteGDB::queryAttached ( QuerySetCommand::Context ctx)
private

◆ queryC()

void gem5::BaseRemoteGDB::queryC ( QuerySetCommand::Context ctx)
private

Definition at line 1337 of file remote_gdb.cc.

References gem5::ThreadContext::contextId(), send(), and tc.

◆ queryFThreadInfo()

void gem5::BaseRemoteGDB::queryFThreadInfo ( QuerySetCommand::Context ctx)
private

Definition at line 1416 of file remote_gdb.cc.

References querySThreadInfo(), and threadInfoIdx.

◆ querySThreadInfo()

void gem5::BaseRemoteGDB::querySThreadInfo ( QuerySetCommand::Context ctx)
private

Definition at line 1423 of file remote_gdb.cc.

References send(), threadInfoIdx, and threads.

Referenced by queryFThreadInfo().

◆ querySupported()

void gem5::BaseRemoteGDB::querySupported ( QuerySetCommand::Context ctx)
private

Definition at line 1343 of file remote_gdb.cc.

References availableFeatures(), and send().

◆ querySymbol()

void gem5::BaseRemoteGDB::querySymbol ( QuerySetCommand::Context ctx)
private

Definition at line 1396 of file remote_gdb.cc.

References send().

◆ queryXfer()

void gem5::BaseRemoteGDB::queryXfer ( QuerySetCommand::Context ctx)
private

◆ read() [1/2]

template<class T >
T gem5::BaseRemoteGDB::read ( Addr  addr)
inlineprivate

Definition at line 475 of file remote_gdb.hh.

References gem5::X86ISA::addr, and read().

◆ read() [2/2]

bool gem5::BaseRemoteGDB::read ( Addr  vaddr,
size_t  size,
char *  data 
)
private

Definition at line 841 of file remote_gdb.cc.

References data, DPRINTF, DPRINTFNR, readBlob(), and gem5::MipsISA::vaddr.

Referenced by cmdMemR(), read(), and try_getbyte().

◆ readBlob()

bool gem5::BaseRemoteGDB::readBlob ( Addr  vaddr,
size_t  size,
char *  data 
)
privatevirtual

Reimplemented in gem5::fastmodel::FastmodelRemoteGDB.

Definition at line 818 of file remote_gdb.cc.

References data, gem5::FullSystem, gem5::PortProxy::readBlob(), tc, and gem5::MipsISA::vaddr.

Referenced by read().

◆ recv()

void gem5::BaseRemoteGDB::recv ( std::vector< char > &  bp)
private

◆ removeHardBreak()

void gem5::BaseRemoteGDB::removeHardBreak ( Addr  addr,
size_t  kind 
)
private

◆ removeSoftBreak()

void gem5::BaseRemoteGDB::removeSoftBreak ( Addr  addr,
size_t  kind 
)
private

Definition at line 911 of file remote_gdb.cc.

References gem5::X86ISA::addr, checkBpKind(), and removeHardBreak().

Referenced by cmdClrHwBkpt().

◆ replaceThreadContext()

void gem5::BaseRemoteGDB::replaceThreadContext ( ThreadContext tc)
inline

Definition at line 54 of file remote_gdb.hh.

Referenced by gem5::Workload::replaceThreadContext().

◆ scheduleInstCommitEvent() [1/2]

void gem5::BaseRemoteGDB::scheduleInstCommitEvent ( Event ev,
int  delta 
)
inlineprivate

Definition at line 318 of file remote_gdb.hh.

References scheduleInstCommitEvent(), and tc.

◆ scheduleInstCommitEvent() [2/2]

void gem5::BaseRemoteGDB::scheduleInstCommitEvent ( Event ev,
int  delta,
ThreadContext _tc 
)
private

◆ send() [1/3]

void gem5::BaseRemoteGDB::send ( const char *  data)
private

◆ send() [2/3]

template<typename ... Args>
void gem5::BaseRemoteGDB::send ( const char *  format,
const Args &...  args 
)
inlineprivate

Definition at line 251 of file remote_gdb.hh.

References gem5::csprintf(), gem5::ArmISA::format, and send().

◆ send() [3/3]

void gem5::BaseRemoteGDB::send ( const std::string &  data)
inlineprivate

Definition at line 247 of file remote_gdb.hh.

References data, and send().

Referenced by send().

◆ sendOPacket()

void gem5::BaseRemoteGDB::sendOPacket ( const std::string  message)
private

Definition at line 968 of file remote_gdb.cc.

References send().

Referenced by sendMessage().

◆ sendSPacket()

void gem5::BaseRemoteGDB::sendSPacket ( int  errnum)
private

Definition at line 964 of file remote_gdb.cc.

References send().

◆ sendTPacket()

void gem5::BaseRemoteGDB::sendTPacket ( int  errnum,
ContextID  id,
const std::string &  stopReason 
)
private

Definition at line 954 of file remote_gdb.cc.

References send().

Referenced by cmdSignal(), and trap().

◆ setSingleStep()

void gem5::BaseRemoteGDB::setSingleStep ( )
private

Definition at line 895 of file remote_gdb.cc.

References scheduleInstCommitEvent(), and singleStepEvent.

Referenced by cmdAsyncStep(), and cmdStep().

◆ singleStep()

void gem5::BaseRemoteGDB::singleStep ( )
private

◆ system()

System* gem5::BaseRemoteGDB::system ( )
inlineprotected

Definition at line 443 of file remote_gdb.hh.

References sys.

◆ trap()

bool gem5::BaseRemoteGDB::trap ( ContextID  id,
int  type 
)
inline

◆ try_getbyte()

bool gem5::BaseRemoteGDB::try_getbyte ( uint8_t *  c,
int  timeout = -1 
)
private

Definition at line 632 of file remote_gdb.cc.

References gem5::VegaISA::c, DPRINTF, fd, panic, and read().

Referenced by getbyte(), and send().

◆ write() [1/2]

template<class T >
void gem5::BaseRemoteGDB::write ( Addr  addr,
data 
)
inlineprivate

Definition at line 484 of file remote_gdb.hh.

References gem5::X86ISA::addr, data, and write().

◆ write() [2/2]

bool gem5::BaseRemoteGDB::write ( Addr  vaddr,
size_t  size,
const char *  data 
)
private

Definition at line 866 of file remote_gdb.cc.

References data, DPRINTFN, DPRINTFNR, gem5::MipsISA::vaddr, and writeBlob().

Referenced by cmdMemW(), putbyte(), and write().

◆ writeBlob()

bool gem5::BaseRemoteGDB::writeBlob ( Addr  vaddr,
size_t  size,
const char *  data 
)
privatevirtual

Reimplemented in gem5::fastmodel::FastmodelRemoteGDB.

Definition at line 829 of file remote_gdb.cc.

References data, gem5::FullSystem, tc, gem5::MipsISA::vaddr, and gem5::PortProxy::writeBlob().

Referenced by write().

Friends And Related Function Documentation

◆ HardBreakpoint

friend class HardBreakpoint
friend

Definition at line 145 of file remote_gdb.hh.

Referenced by insertHardBreak().

Member Data Documentation

◆ _port

int gem5::BaseRemoteGDB::_port
private

Definition at line 235 of file remote_gdb.hh.

Referenced by listen(), and port().

◆ attached

bool gem5::BaseRemoteGDB::attached = false
private

Definition at line 267 of file remote_gdb.hh.

Referenced by attach(), detach(), isAttached(), sendMessage(), and trap().

◆ commandMap

std::map< char, BaseRemoteGDB::GdbCommand > gem5::BaseRemoteGDB::commandMap
staticprivate

Definition at line 357 of file remote_gdb.hh.

Referenced by processCommands().

◆ connectEvent

EventWrapper<BaseRemoteGDB, &BaseRemoteGDB::connect> gem5::BaseRemoteGDB::connectEvent
private

Definition at line 277 of file remote_gdb.hh.

Referenced by incomingConnection().

◆ disconnectEvent

EventWrapper<BaseRemoteGDB, &BaseRemoteGDB::detach> gem5::BaseRemoteGDB::disconnectEvent
private

Definition at line 278 of file remote_gdb.hh.

Referenced by incomingData().

◆ fd

int gem5::BaseRemoteGDB::fd
private

Definition at line 238 of file remote_gdb.hh.

Referenced by attach(), detach(), putbyte(), and try_getbyte().

◆ IncomingConnectionEvent

Definition at line 228 of file remote_gdb.hh.

◆ incomingConnectionEvent

IncomingConnectionEvent* gem5::BaseRemoteGDB::incomingConnectionEvent
private

Definition at line 231 of file remote_gdb.hh.

Referenced by connect(), detach(), and listen().

◆ IncomingDataEvent

Definition at line 229 of file remote_gdb.hh.

◆ incomingDataEvent

IncomingDataEvent* gem5::BaseRemoteGDB::incomingDataEvent
private

Definition at line 232 of file remote_gdb.hh.

Referenced by attach(), and detach().

◆ listener

ListenSocket gem5::BaseRemoteGDB::listener
private

Definition at line 234 of file remote_gdb.hh.

Referenced by addThreadContext(), connect(), listen(), and port().

◆ multiLetterMap

std::map< std::string, BaseRemoteGDB::GdbMultiLetterCommand > gem5::BaseRemoteGDB::multiLetterMap
staticprivate
Initial value:
= {
{ "MustReplyEmpty", { "KGDB_REPLY_EMPTY", &BaseRemoteGDB::cmdReplyEmpty}},
{ "Kill", { "KGDB_VKILL", &BaseRemoteGDB::cmdVKill}},
}
bool cmdReplyEmpty(GdbMultiLetterCommand::Context &ctx)
Definition: remote_gdb.cc:1287
bool cmdVKill(GdbMultiLetterCommand::Context &ctx)
Definition: remote_gdb.cc:1294

Definition at line 381 of file remote_gdb.hh.

Referenced by cmdMultiLetter().

◆ queryMap

std::map< std::string, BaseRemoteGDB::QuerySetCommand > gem5::BaseRemoteGDB::queryMap
staticprivate
Initial value:
= {
{ "C", { &BaseRemoteGDB::queryC } },
{ "Attached", { &BaseRemoteGDB::queryAttached} },
{ "Supported", { &BaseRemoteGDB::querySupported, ";" } },
{ "Xfer", { &BaseRemoteGDB::queryXfer } },
{ "Symbol", { &BaseRemoteGDB::querySymbol ,":" } },
{ "fThreadInfo", { &BaseRemoteGDB::queryFThreadInfo } },
{ "sThreadInfo", { &BaseRemoteGDB::querySThreadInfo } },
}
void querySymbol(QuerySetCommand::Context &ctx)
Definition: remote_gdb.cc:1396
void queryXfer(QuerySetCommand::Context &ctx)
Definition: remote_gdb.cc:1356
void queryFThreadInfo(QuerySetCommand::Context &ctx)
Definition: remote_gdb.cc:1416
void queryAttached(QuerySetCommand::Context &ctx)
Definition: remote_gdb.cc:1403
void querySThreadInfo(QuerySetCommand::Context &ctx)
Definition: remote_gdb.cc:1423
void queryC(QuerySetCommand::Context &ctx)
Definition: remote_gdb.cc:1337
void querySupported(QuerySetCommand::Context &ctx)
Definition: remote_gdb.cc:1343

Definition at line 429 of file remote_gdb.hh.

Referenced by cmdQueryVar().

◆ regCachePtr

BaseGdbRegCache* gem5::BaseRemoteGDB::regCachePtr = nullptr
private

Definition at line 275 of file remote_gdb.hh.

Referenced by cmdRegR(), cmdRegW(), processCommands(), and selectThreadContext().

◆ singleStepEvent

EventWrapper<BaseRemoteGDB, &BaseRemoteGDB::singleStep> gem5::BaseRemoteGDB::singleStepEvent
private

Definition at line 311 of file remote_gdb.hh.

Referenced by clearSingleStep(), setSingleStep(), singleStep(), and trap().

◆ sys

System* gem5::BaseRemoteGDB::sys
private

Definition at line 270 of file remote_gdb.hh.

Referenced by insertHardBreak(), name(), and system().

◆ tc

ThreadContext* gem5::BaseRemoteGDB::tc = nullptr
private

◆ threadInfoIdx

size_t gem5::BaseRemoteGDB::threadInfoIdx = 0
private

Definition at line 437 of file remote_gdb.hh.

Referenced by queryFThreadInfo(), and querySThreadInfo().

◆ threads

std::map<ContextID, ThreadContext *> gem5::BaseRemoteGDB::threads
private

◆ threadSwitching

bool gem5::BaseRemoteGDB::threadSwitching = false
private

Definition at line 268 of file remote_gdb.hh.

Referenced by cmdSetThread(), and trap().

◆ trapEvent

gem5::BaseRemoteGDB::TrapEvent gem5::BaseRemoteGDB::trapEvent
private

Referenced by incomingData(), and scheduleTrapEvent().


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

Generated on Wed Dec 21 2022 10:23:10 for gem5 by doxygen 1.9.1