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:
parent
e232152db6
commit
73ef8bd168
|
@ -290,7 +290,7 @@ InOrderCPU::InOrderCPU(Params *params)
|
||||||
} else {
|
} else {
|
||||||
if (tid < (ThreadID)params->workload.size()) {
|
if (tid < (ThreadID)params->workload.size()) {
|
||||||
DPRINTF(InOrderCPU, "Workload[%i] process is %#x\n",
|
DPRINTF(InOrderCPU, "Workload[%i] process is %#x\n",
|
||||||
tid, params->workload[tid]->prog_fname);
|
tid, params->workload[tid]->progName());
|
||||||
thread[tid] =
|
thread[tid] =
|
||||||
new Thread(this, tid, params->workload[tid]);
|
new Thread(this, tid, params->workload[tid]);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -571,8 +571,6 @@ LiveProcess::LiveProcess(LiveProcessParams * params, ObjectFile *_objFile)
|
||||||
__pid = params->pid;
|
__pid = params->pid;
|
||||||
__ppid = params->ppid;
|
__ppid = params->ppid;
|
||||||
|
|
||||||
prog_fname = params->cmd[0];
|
|
||||||
|
|
||||||
// load up symbols, if any... these may be used for debugging or
|
// load up symbols, if any... these may be used for debugging or
|
||||||
// profiling.
|
// profiling.
|
||||||
if (!debugSymbolTable) {
|
if (!debugSymbolTable) {
|
||||||
|
|
|
@ -110,11 +110,8 @@ class Process : public SimObject
|
||||||
Addr nxm_start;
|
Addr nxm_start;
|
||||||
Addr nxm_end;
|
Addr nxm_end;
|
||||||
|
|
||||||
std::string prog_fname; // file name
|
|
||||||
|
|
||||||
Stats::Scalar num_syscalls; // number of syscalls executed
|
Stats::Scalar num_syscalls; // number of syscalls executed
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// constructor
|
// constructor
|
||||||
Process(ProcessParams *params);
|
Process(ProcessParams *params);
|
||||||
|
@ -177,6 +174,9 @@ class Process : public SimObject
|
||||||
// Find a free context to use
|
// Find a free context to use
|
||||||
ThreadContext *findFreeContext();
|
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
|
// map simulator fd sim_fd to target fd tgt_fd
|
||||||
void dup_fd(int sim_fd, int 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 pid() {return __pid;}
|
||||||
inline uint64_t ppid() {return __ppid;}
|
inline uint64_t ppid() {return __ppid;}
|
||||||
|
|
||||||
|
// provide program name for debug messages
|
||||||
|
virtual const char *progName() const { return argv[0].c_str(); }
|
||||||
|
|
||||||
std::string
|
std::string
|
||||||
fullPath(const std::string &filename)
|
fullPath(const std::string &filename)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue