summaryrefslogtreecommitdiff
path: root/src/base
diff options
context:
space:
mode:
Diffstat (limited to 'src/base')
-rw-r--r--src/base/remote_gdb.cc11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/base/remote_gdb.cc b/src/base/remote_gdb.cc
index 0d3b73b1e..e4efa31e3 100644
--- a/src/base/remote_gdb.cc
+++ b/src/base/remote_gdb.cc
@@ -796,7 +796,6 @@ RemoteGDB::trap(int type)
size_t datalen, len;
char data[KGDB_BUFLEN + 1];
char buffer[sizeof(gdbregs) * 2 + 256];
- char temp[KGDB_BUFLEN];
const char *p;
char command, subcmd;
string var;
@@ -904,10 +903,14 @@ RemoteGDB::trap(int type)
}
if (read(val, (size_t)len, (char *)buffer)) {
- mem2hex(temp, buffer, len);
- send(temp);
+ // variable length array would be nice, but C++ doesn't
+ // officially support those...
+ char *temp = new char[2*len+1];
+ mem2hex(temp, buffer, len);
+ send(temp);
+ delete [] temp;
} else {
- send("E05");
+ send("E05");
}
continue;