Go to the documentation of this file.
133 #include <sys/signal.h>
149 #include "blobs/gdb_xml_aarch64_core.hh"
150 #include "blobs/gdb_xml_aarch64_fpu.hh"
151 #include "blobs/gdb_xml_aarch64_target.hh"
152 #include "blobs/gdb_xml_arm_core.hh"
153 #include "blobs/gdb_xml_arm_target.hh"
154 #include "blobs/gdb_xml_arm_vfpv3.hh"
158 #include "debug/GDBAcc.hh"
159 #include "debug/GDBMisc.hh"
173 auto req = std::make_shared<Request>(
addr, 64, 0x40, -1, 0, 0);
188 :
BaseRemoteGDB(_system, tc, _port), regCache32(this), regCache64(this)
201 DPRINTF(GDBAcc,
"acc: %#x mapping is invalid\n",
va);
206 DPRINTF(GDBAcc,
"acc: %#x mapping is valid\n",
va);
218 DPRINTF(GDBAcc,
"getRegs in remotegdb \n");
220 for (
int i = 0;
i < 31; ++
i)
241 DPRINTF(GDBAcc,
"setRegs in remotegdb \n");
243 for (
int i = 0;
i < 31; ++
i)
270 DPRINTF(GDBAcc,
"getRegs in remotegdb \n");
291 for (
int i = 0;
i < 32;
i++)
300 DPRINTF(GDBAcc,
"setRegs in remotegdb \n");
318 pc_state.set(
r.gpr[15]);
330 #define GDB_XML(x, s) \
331 { x, std::string(reinterpret_cast<const char *>(Blobs::s), \
333 static const std::map<std::string, std::string> annexMap32{
334 GDB_XML(
"target.xml", gdb_xml_arm_target),
335 GDB_XML(
"arm-core.xml", gdb_xml_arm_core),
336 GDB_XML(
"arm-vfpv3.xml", gdb_xml_arm_vfpv3),
338 static const std::map<std::string, std::string> annexMap64{
339 GDB_XML(
"target.xml", gdb_xml_aarch64_target),
340 GDB_XML(
"aarch64-core.xml", gdb_xml_aarch64_core),
341 GDB_XML(
"aarch64-fpu.xml", gdb_xml_aarch64_fpu),
345 auto it = annexMap.find(annex);
346 if (it == annexMap.end())
virtual RegVal readMiscRegNoEffect(RegIndex misc_reg) const =0
static void output(const char *filename)
Fault translateFunctional(const RequestPtr &req, ThreadContext *tc, BaseTLB::Mode mode)
void getRegs(ThreadContext *)
Fill the raw buffer from the registers in the ThreadContext.
virtual BaseMMU * getMMUPtr()=0
virtual void setIntReg(RegIndex reg_idx, RegVal val)=0
AArch64GdbRegCache regCache64
EmulationPageTable * pTable
bool FullSystem
The FullSystem variable can be used to determine the current mode of simulation.
virtual Process * getProcessPtr()=0
virtual const TheISA::VecRegContainer & readVecReg(const RegId ®) const =0
const int NumVecV8ArchRegs
const Entry * lookup(Addr vaddr)
Lookup function.
Register ID: describe an architectural register with its class and index.
VecElem v[NumVecV8ArchRegs *NumVecElemPerNeonVecReg]
void getRegs(ThreadContext *)
Fill the raw buffer from the registers in the ThreadContext.
ThreadContext * context()
ThreadContext is the external interface to all thread state for anything outside of the CPU.
void setRegs(ThreadContext *) const
Set the ThreadContext's registers from the values in the raw buffer.
void setRegs(ThreadContext *) const
Set the ThreadContext's registers from the values in the raw buffer.
constexpr decltype(nullptr) NoFault
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
bool done() const
Are we done? That is, did the last call to next() advance past the end of the region?
Concrete subclasses of this abstract class represent how the register values are transmitted on the w...
bool getXferFeaturesRead(const std::string &annex, std::string &output)
Get an XML target description.
virtual TheISA::PCState pcState() const =0
RemoteGDB(System *_system, ThreadContext *tc, int _port)
static bool tryTranslate(ThreadContext *tc, Addr addr)
@ VecRegClass
Vector Register.
BaseGdbRegCache * gdbRegs()
virtual TheISA::VecRegContainer & getWritableVecReg(const RegId ®)=0
bool acc(Addr addr, size_t len)
constexpr unsigned NumVecElemPerNeonVecReg
virtual void setMiscReg(RegIndex misc_reg, RegVal val)=0
struct ArmISA::RemoteGDB::AArch64GdbRegCache::M5_ATTR_PACKED r
This class takes an arbitrary memory region (address/length pair) and generates a series of appropria...
virtual void setMiscRegNoEffect(RegIndex misc_reg, RegVal val)=0
AArch32GdbRegCache regCache32
bool inAArch64(ThreadContext *tc)
virtual RegVal readIntReg(RegIndex reg_idx) const =0
Generated on Tue Jun 22 2021 15:28:21 for gem5 by doxygen 1.8.17