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.
This commit is contained in:
parent
4a3ce94386
commit
f92e91e853
7 changed files with 10 additions and 24 deletions
|
@ -54,9 +54,6 @@ namespace TheISA
|
|||
class Processor;
|
||||
class PhysicalMemory;
|
||||
|
||||
class RemoteGDB;
|
||||
class GDBListener;
|
||||
|
||||
#else
|
||||
|
||||
class Process;
|
||||
|
|
|
@ -58,9 +58,6 @@ namespace TheISA
|
|||
class PhysicalMemory;
|
||||
class MemoryController;
|
||||
|
||||
class RemoteGDB;
|
||||
class GDBListener;
|
||||
|
||||
namespace TheISA {
|
||||
namespace Kernel {
|
||||
class Statistics;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -63,9 +63,6 @@ class Process;
|
|||
|
||||
#endif // FULL_SYSTEM
|
||||
|
||||
class RemoteGDB;
|
||||
class GDBListener;
|
||||
|
||||
namespace TheISA
|
||||
{
|
||||
class Predecoder;
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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(); }
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
Loading…
Reference in a new issue