process: add progName() virtual function

This replaces a (potentially uninitialized) string
field with a virtual function so that we can have
a safe interface without requiring changes to the
eio code.
This commit is contained in:
Steve Reinhardt
2012-08-06 16:55:34 -07:00
parent e232152db6
commit 73ef8bd168
3 changed files with 7 additions and 6 deletions

View File

@@ -571,8 +571,6 @@ LiveProcess::LiveProcess(LiveProcessParams * params, ObjectFile *_objFile)
__pid = params->pid;
__ppid = params->ppid;
prog_fname = params->cmd[0];
// load up symbols, if any... these may be used for debugging or
// profiling.
if (!debugSymbolTable) {

View File

@@ -110,11 +110,8 @@ class Process : public SimObject
Addr nxm_start;
Addr nxm_end;
std::string prog_fname; // file name
Stats::Scalar num_syscalls; // number of syscalls executed
protected:
// constructor
Process(ProcessParams *params);
@@ -177,6 +174,9 @@ class Process : public SimObject
// Find a free context to use
ThreadContext *findFreeContext();
// provide program name for debug messages
virtual const char *progName() const { return "<unknown>"; }
// map simulator fd sim_fd to target fd tgt_fd
void dup_fd(int sim_fd, int tgt_fd);
@@ -292,6 +292,9 @@ class LiveProcess : public Process
inline uint64_t pid() {return __pid;}
inline uint64_t ppid() {return __ppid;}
// provide program name for debug messages
virtual const char *progName() const { return argv[0].c_str(); }
std::string
fullPath(const std::string &filename)
{