From f92e91e85309e9dcfd0b3c5a8e4faa460d921b7f Mon Sep 17 00:00:00 2001 From: Steve Reinhardt Date: Thu, 3 Jun 2010 16:54:26 -0700 Subject: Minor remote GDB cleanup. Expand the help text on the --remote-gdb-port option so people know you can use it to disable remote gdb without reading the source code, and thus don't waste any time trying to add a separate option to do that. Clean up some gdb-related cruft I found while looking for where one would add a gdb disable option, before I found the comment that told me that I didn't need to do that. --- src/sim/process.hh | 5 ----- src/sim/system.cc | 17 +++++++++-------- 2 files changed, 9 insertions(+), 13 deletions(-) (limited to 'src/sim') diff --git a/src/sim/process.hh b/src/sim/process.hh index ab9d64cf3..36db8d091 100644 --- a/src/sim/process.hh +++ b/src/sim/process.hh @@ -91,11 +91,6 @@ class Process : public SimObject // thread contexts associated with this process std::vector contextIds; - // remote gdb objects - std::vector remoteGDB; - std::vector gdbListen; - bool breakpoint(); - // number of CPUs (esxec contexts, really) assigned to this process. unsigned int numCpus() { return contextIds.size(); } diff --git a/src/sim/system.cc b/src/sim/system.cc index da77f1995..c7f5b2d08 100644 --- a/src/sim/system.cc +++ b/src/sim/system.cc @@ -151,9 +151,6 @@ System::~System() #endif // FULL_SYSTEM} } -int rgdb_wait = -1; -int rgdb_enable = true; - void System::setMemoryMode(Enums::MemoryMode mode) { @@ -168,6 +165,13 @@ bool System::breakpoint() return false; } +/** + * Setting rgdb_wait to a positive integer waits for a remote debugger to + * connect to that context ID before continuing. This should really + be a parameter on the CPU object or something... + */ +int rgdb_wait = -1; + int System::registerThreadContext(ThreadContext *tc, int assigned) { @@ -193,14 +197,11 @@ System::registerThreadContext(ThreadContext *tc, int assigned) _numContexts++; int port = getRemoteGDBPort(); - if (rgdb_enable && port) { + if (port) { RemoteGDB *rgdb = new RemoteGDB(this, tc); GDBListener *gdbl = new GDBListener(rgdb, port + id); gdbl->listen(); - /** - * Uncommenting this line waits for a remote debugger to - * connect to the simulator before continuing. - */ + if (rgdb_wait != -1 && rgdb_wait == id) gdbl->accept(); -- cgit v1.2.3