diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2007-01-22 22:22:09 -0800 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2007-01-22 22:22:09 -0800 |
commit | 45c3f1747c78aff3495edfe2cbe35fbb7a67f2a4 (patch) | |
tree | 78194b3f3a4e4910139271a6645246e7f12a2dab /src | |
parent | 8840ebcb00f3988c781063e572b6df5742968f95 (diff) | |
download | gem5-45c3f1747c78aff3495edfe2cbe35fbb7a67f2a4.tar.xz |
Added remote gdb objects to each process
--HG--
extra : convert_revision : 1b5c1470ffc52b2f7719e469153702dec694f9a3
Diffstat (limited to 'src')
-rw-r--r-- | src/sim/process.cc | 8 | ||||
-rw-r--r-- | src/sim/process.hh | 10 |
2 files changed, 18 insertions, 0 deletions
diff --git a/src/sim/process.cc b/src/sim/process.cc index b43fa7d00..1a0f54842 100644 --- a/src/sim/process.cc +++ b/src/sim/process.cc @@ -35,6 +35,7 @@ #include <string> +#include "arch/remote_gdb.hh" #include "base/intmath.hh" #include "base/loader/object_file.hh" #include "base/loader/symtab.hh" @@ -154,6 +155,13 @@ Process::registerThreadContext(ThreadContext *tc) int myIndex = threadContexts.size(); threadContexts.push_back(tc); + RemoteGDB *rgdb = new RemoteGDB(system, tc); + GDBListener *gdbl = new GDBListener(rgdb, 7000 + myIndex); + gdbl->listen(); + //gdbl->accept(); + + remoteGDB.push_back(rgdb); + // return CPU number to caller return myIndex; } diff --git a/src/sim/process.hh b/src/sim/process.hh index 616c02c00..bf65c6e06 100644 --- a/src/sim/process.hh +++ b/src/sim/process.hh @@ -51,6 +51,11 @@ class SyscallDesc; class PageTable; class TranslatingPort; class System; +class GDBListener; +namespace TheISA +{ + class RemoteGDB; +} void copyStringArray(std::vector<std::string> &strings, Addr array_ptr, @@ -72,6 +77,11 @@ class Process : public SimObject // thread contexts associated with this process std::vector<ThreadContext *> threadContexts; + // remote gdb objects + std::vector<TheISA::RemoteGDB *> remoteGDB; + std::vector<GDBListener *> gdbListen; + bool breakpoint(); + // number of CPUs (esxec contexts, really) assigned to this process. unsigned int numCpus() { return threadContexts.size(); } |