Make a function to say how big gdbregs is in bytes vs. regs.
--HG-- extra : convert_revision : 10c50c2d45a8e510d71cccde520059363116da8a
This commit is contained in:
parent
63bbc8929d
commit
42c73c6a92
|
@ -141,7 +141,7 @@ using namespace TheISA;
|
|||
RemoteGDB::RemoteGDB(System *_system, ThreadContext *c)
|
||||
: BaseRemoteGDB(_system, c, KGDB_NUMREGS)
|
||||
{
|
||||
memset(gdbregs.regs, 0, gdbregs.size);
|
||||
memset(gdbregs.regs, 0, gdbregs.bytes());
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
|
@ -201,7 +201,7 @@ RemoteGDB::acc(Addr va, size_t len)
|
|||
void
|
||||
RemoteGDB::getregs()
|
||||
{
|
||||
memset(gdbregs.regs, 0, gdbregs.size);
|
||||
memset(gdbregs.regs, 0, gdbregs.bytes());
|
||||
|
||||
gdbregs.regs[KGDB_REG_PC] = context->readPC();
|
||||
|
||||
|
|
|
@ -247,7 +247,7 @@ BaseRemoteGDB::BaseRemoteGDB(System *_system, ThreadContext *c, size_t cacheSize
|
|||
system(_system), pmem(_system->physmem), context(c),
|
||||
gdbregs(cacheSize)
|
||||
{
|
||||
memset(gdbregs.regs, 0, gdbregs.size);
|
||||
memset(gdbregs.regs, 0, gdbregs.bytes());
|
||||
}
|
||||
|
||||
BaseRemoteGDB::~BaseRemoteGDB()
|
||||
|
@ -610,7 +610,7 @@ BaseRemoteGDB::trap(int type)
|
|||
uint64_t val;
|
||||
size_t datalen, len;
|
||||
char data[GDBPacketBufLen + 1];
|
||||
char buffer[gdbregs.size * 2 + 256];
|
||||
char buffer[gdbregs.bytes() * 2 + 256];
|
||||
const char *p;
|
||||
char command, subcmd;
|
||||
string var;
|
||||
|
@ -662,15 +662,15 @@ BaseRemoteGDB::trap(int type)
|
|||
continue;
|
||||
|
||||
case GDBRegR:
|
||||
if (2 * gdbregs.size > sizeof(buffer))
|
||||
if (2 * gdbregs.bytes() > sizeof(buffer))
|
||||
panic("buffer too small");
|
||||
|
||||
mem2hex(buffer, gdbregs.regs, gdbregs.size);
|
||||
mem2hex(buffer, gdbregs.regs, gdbregs.bytes());
|
||||
send(buffer);
|
||||
continue;
|
||||
|
||||
case GDBRegW:
|
||||
p = hex2mem(gdbregs.regs, p, gdbregs.size);
|
||||
p = hex2mem(gdbregs.regs, p, gdbregs.bytes());
|
||||
if (p == NULL || *p != '\0')
|
||||
send("E01");
|
||||
else {
|
||||
|
|
|
@ -145,6 +145,7 @@ class BaseRemoteGDB
|
|||
|
||||
uint64_t * regs;
|
||||
size_t size;
|
||||
size_t bytes() { return size * sizeof(uint64_t); }
|
||||
};
|
||||
|
||||
GdbRegCache gdbregs;
|
||||
|
|
Loading…
Reference in a new issue