summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Reinhardt <steve.reinhardt@amd.com>2010-06-03 16:54:26 -0700
committerSteve Reinhardt <steve.reinhardt@amd.com>2010-06-03 16:54:26 -0700
commitf92e91e85309e9dcfd0b3c5a8e4faa460d921b7f (patch)
treeb0b0362e50679e753bbd7db4aafce8376d8571e2
parent4a3ce94386da669e82e1fd32fb201e2c9385938e (diff)
downloadgem5-f92e91e85309e9dcfd0b3c5a8e4faa460d921b7f.tar.xz
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.
-rw-r--r--src/cpu/checker/cpu.hh3
-rw-r--r--src/cpu/ozone/cpu.hh3
-rw-r--r--src/cpu/simple/base.cc1
-rw-r--r--src/cpu/simple/base.hh3
-rw-r--r--src/python/m5/main.py2
-rw-r--r--src/sim/process.hh5
-rw-r--r--src/sim/system.cc17
7 files changed, 10 insertions, 24 deletions
diff --git a/src/cpu/checker/cpu.hh b/src/cpu/checker/cpu.hh
index 450ce6228..73b27161a 100644
--- a/src/cpu/checker/cpu.hh
+++ b/src/cpu/checker/cpu.hh
@@ -54,9 +54,6 @@ namespace TheISA
class Processor;
class PhysicalMemory;
-class RemoteGDB;
-class GDBListener;
-
#else
class Process;
diff --git a/src/cpu/ozone/cpu.hh b/src/cpu/ozone/cpu.hh
index a16986c99..fba5886f8 100644
--- a/src/cpu/ozone/cpu.hh
+++ b/src/cpu/ozone/cpu.hh
@@ -58,9 +58,6 @@ namespace TheISA
class PhysicalMemory;
class MemoryController;
-class RemoteGDB;
-class GDBListener;
-
namespace TheISA {
namespace Kernel {
class Statistics;
diff --git a/src/cpu/simple/base.cc b/src/cpu/simple/base.cc
index 713ffd081..7f40138d2 100644
--- a/src/cpu/simple/base.cc
+++ b/src/cpu/simple/base.cc
@@ -76,7 +76,6 @@
#include "arch/stacktrace.hh"
#include "arch/tlb.hh"
#include "arch/vtophys.hh"
-#include "base/remote_gdb.hh"
#else // !FULL_SYSTEM
#include "mem/mem_object.hh"
#endif // FULL_SYSTEM
diff --git a/src/cpu/simple/base.hh b/src/cpu/simple/base.hh
index 87e211521..1265a1f2f 100644
--- a/src/cpu/simple/base.hh
+++ b/src/cpu/simple/base.hh
@@ -63,9 +63,6 @@ class Process;
#endif // FULL_SYSTEM
-class RemoteGDB;
-class GDBListener;
-
namespace TheISA
{
class Predecoder;
diff --git a/src/python/m5/main.py b/src/python/m5/main.py
index 29f8cc976..fd58ce500 100644
--- a/src/python/m5/main.py
+++ b/src/python/m5/main.py
@@ -101,7 +101,7 @@ set_group("Debugging Options")
add_option("--debug-break", metavar="TIME[,TIME]", action='append', split=',',
help="Cycle to create a breakpoint")
add_option("--remote-gdb-port", type='int', default=7000,
- help="Remote gdb base port")
+ help="Remote gdb base port (set to 0 to disable listening)")
# Tracing options
set_group("Trace Options")
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<int> contextIds;
- // remote gdb objects
- std::vector<BaseRemoteGDB *> remoteGDB;
- std::vector<GDBListener *> 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();