gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Public Member Functions | Protected Member Functions | List of all members
AlphaISA::RemoteGDB Class Reference

#include <remote_gdb.hh>

Inheritance diagram for AlphaISA::RemoteGDB:
BaseRemoteGDB

Classes

class  AlphaGdbRegCache
 

Public Member Functions

 RemoteGDB (System *system, ThreadContext *context)
 
BaseGdbRegCachegdbRegs ()
 
- Public Member Functions inherited from BaseRemoteGDB
bool breakpoint ()
 
void replaceThreadContext (ThreadContext *tc)
 
virtual ~BaseRemoteGDB ()
 
 BaseRemoteGDB (System *system, ThreadContext *context)
 
virtual ~BaseRemoteGDB ()
 
void replaceThreadContext (ThreadContext *tc)
 
void attach (int fd)
 
void detach ()
 
bool isattached ()
 
bool trap (int type)
 
virtual bool breakpoint ()
 
std::string name ()
 

Protected Member Functions

bool acc (Addr addr, size_t len)
 
bool write (Addr addr, size_t size, const char *data)
 
void insertHardBreak (Addr addr, size_t len) override
 
- Protected Member Functions inherited from BaseRemoteGDB
int digit2i (char)
 
char i2digit (int)
 
Addr hex2i (const char **)
 
virtual void mem2hex (char *, const char *, int)
 
virtual const char * hex2mem (char *, const char *, int)
 
virtual const char * break_type (char c)
 
bool cmd_unsupported (GdbCommand::Context &ctx)
 
bool cmd_signal (GdbCommand::Context &ctx)
 
bool cmd_cont (GdbCommand::Context &ctx)
 
bool cmd_async_cont (GdbCommand::Context &ctx)
 
bool cmd_detach (GdbCommand::Context &ctx)
 
bool cmd_reg_r (GdbCommand::Context &ctx)
 
bool cmd_reg_w (GdbCommand::Context &ctx)
 
bool cmd_set_thread (GdbCommand::Context &ctx)
 
bool cmd_mem_r (GdbCommand::Context &ctx)
 
bool cmd_mem_w (GdbCommand::Context &ctx)
 
bool cmd_query_var (GdbCommand::Context &ctx)
 
bool cmd_step (GdbCommand::Context &ctx)
 
bool cmd_async_step (GdbCommand::Context &ctx)
 
bool cmd_clr_hw_bkpt (GdbCommand::Context &ctx)
 
bool cmd_set_hw_bkpt (GdbCommand::Context &ctx)
 
uint8_t getbyte ()
 
void putbyte (uint8_t b)
 
int recv (char *data, int len)
 
void send (const char *data)
 
virtual bool read (Addr addr, size_t size, char *data)
 
template<class T >
read (Addr addr)
 
template<class T >
void write (Addr addr, T data)
 
void clearSingleStep ()
 
void setSingleStep ()
 
PCEventQueuegetPcEventQueue ()
 
EventQueuegetComInstEventQueue ()
 
void scheduleInstCommitEvent (Event *ev, int delta)
 Schedule an event which will be triggered "delta" instructions later. More...
 
void descheduleInstCommitEvent (Event *ev)
 Deschedule an instruction count based event. More...
 
virtual bool checkBpLen (size_t len)
 
void insertSoftBreak (Addr addr, size_t len)
 
void removeSoftBreak (Addr addr, size_t len)
 
void removeHardBreak (Addr addr, size_t len)
 
void clearTempBreakpoint (Addr &bkpt)
 
void setTempBreakpoint (Addr bkpt)
 

Additional Inherited Members

- Protected Types inherited from BaseRemoteGDB
typedef std::map< Addr,
HardBreakpoint * > 
break_map_t
 
typedef break_map_t::iterator break_iter_t
 
- Protected Attributes inherited from BaseRemoteGDB
InputEventinputEvent
 
TrapEvent trapEvent
 
GDBListenerlistener
 
int number
 
int fd
 
bool active
 
bool attached
 
Systemsystem
 
ThreadContextcontext
 
BaseGdbRegCacheregCachePtr
 
SingleStepEvent singleStepEvent
 
break_map_t hardBreakMap
 
- Static Protected Attributes inherited from BaseRemoteGDB
static std::map< char, GdbCommandcommand_map
 

Detailed Description

Definition at line 49 of file remote_gdb.hh.

Constructor & Destructor Documentation

RemoteGDB::RemoteGDB ( System system,
ThreadContext context 
)

Definition at line 147 of file remote_gdb.cc.

Member Function Documentation

bool RemoteGDB::acc ( Addr  addr,
size_t  len 
)
protectedvirtual

This code says that all accesses to palcode (instruction and data) are valid since there isn't a va->pa mapping because palcode is accessed physically. At some point this should probably be cleaned up but there is no easy way to do it.

Implements BaseRemoteGDB.

Definition at line 156 of file remote_gdb.cc.

References BaseRemoteGDB::context, DPRINTF, FullSystem, ThreadContext::getPhysProxy(), AlphaISA::IPR_PALtemp20, AlphaISA::IsK0Seg(), AlphaISA::K0SegBase, AlphaISA::kernel_pte_lookup(), System::memSize(), AlphaISA::PageBytes, panic, AlphaISA::PcPAL(), ThreadContext::readMiscRegNoEffect(), AlphaISA::RoundPage(), BaseRemoteGDB::system, AlphaISA::TruncPage(), ArmISA::va, and AlphaISA::PageTableEntry::valid().

RemoteGDB::BaseGdbRegCache * RemoteGDB::gdbRegs ( )
virtual

Implements BaseRemoteGDB.

Definition at line 274 of file remote_gdb.cc.

void RemoteGDB::insertHardBreak ( Addr  addr,
size_t  len 
)
overrideprotectedvirtual

Reimplemented from BaseRemoteGDB.

Definition at line 266 of file remote_gdb.cc.

References BaseRemoteGDB::insertHardBreak(), and warn_once.

bool RemoteGDB::write ( Addr  addr,
size_t  size,
const char *  data 
)
protectedvirtual

Reimplemented from BaseRemoteGDB.

Definition at line 252 of file remote_gdb.cc.

References BaseRemoteGDB::write().


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

Generated on Fri Jun 9 2017 13:04:24 for gem5 by doxygen 1.8.6