diff options
Diffstat (limited to 'src/base/remote_gdb.cc')
-rw-r--r-- | src/base/remote_gdb.cc | 11 |
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; |