From: Gabe Black Date: Tue, 23 Jan 2007 06:22:09 +0000 (-0800) Subject: Added remote gdb objects to each process X-Git-Tag: m5_2.0_beta3~254 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=45c3f1747c78aff3495edfe2cbe35fbb7a67f2a4;p=gem5.git Added remote gdb objects to each process --HG-- extra : convert_revision : 1b5c1470ffc52b2f7719e469153702dec694f9a3 --- 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 +#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 &strings, Addr array_ptr, @@ -72,6 +77,11 @@ class Process : public SimObject // thread contexts associated with this process std::vector threadContexts; + // 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 threadContexts.size(); }