Added remote gdb objects to each process

--HG--
extra : convert_revision : 1b5c1470ffc52b2f7719e469153702dec694f9a3
This commit is contained in:
Gabe Black 2007-01-22 22:22:09 -08:00
parent 8840ebcb00
commit 45c3f1747c
2 changed files with 18 additions and 0 deletions

View file

@ -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;
}

View file

@ -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(); }