weather-monitor: renamed logger object

This change renames the logger object used in weather-monitor from
"log" to "LOG" in order to circumvent potential naming conflicts
with e.g. the log() function from e.g. math.h/cmath.

Change-Id: I73758374f76ea5c29cb636ae3e0685a4a4cceacb
This commit is contained in:
Michael Lenz
2014-06-27 16:26:07 +02:00
parent daedb5a4d6
commit a292e192ec
2 changed files with 38 additions and 38 deletions

View File

@ -180,8 +180,8 @@ bool WeatherMonitorExperiment::establishState(guest_address_t& entry)
// STEP 1: run until interesting function starts, and save state
bp.setWatchInstructionPointer(entry);
simulator.addListenerAndResume(&bp);
log << "test function entry reached, saving state" << endl;
log << "EIP = " << hex << bp.getTriggerInstructionPointer() << endl;
LOG << "test function entry reached, saving state" << endl;
LOG << "EIP = " << hex << bp.getTriggerInstructionPointer() << endl;
simulator.save(filename_state(m_variant, m_benchmark).c_str());
assert(bp.getTriggerInstructionPointer() == entry);
assert(simulator.getCPU(0).getInstructionPointer() == entry);
@ -196,12 +196,12 @@ bool WeatherMonitorExperiment::performTrace(
guest_address_t& wait_end)
{
// STEP 2: record trace for fault-space pruning
log << "STEP 2 restoring state" << endl;
LOG << "STEP 2 restoring state" << endl;
simulator.restore(filename_state(m_variant, m_benchmark).c_str());
log << "EIP = " << hex << simulator.getCPU(0).getInstructionPointer() << endl;
LOG << "EIP = " << hex << simulator.getCPU(0).getInstructionPointer() << endl;
assert(simulator.getCPU(0).getInstructionPointer() == entry);
log << "enabling tracing" << endl;
LOG << "enabling tracing" << endl;
TracingPlugin tp;
// TODO: record max(ESP)
@ -244,18 +244,18 @@ bool WeatherMonitorExperiment::performTrace(
simulator.addListener(&ev_count);
}
log << dec << "tracing finished after " << numinstr_tracing
LOG << dec << "tracing finished after " << numinstr_tracing
<< " instructions, seeing wait_end " << WEATHER_NUMITER_TRACING << " times" << endl;
simulator.removeFlow(&tp);
// serialize trace to file
if (of.fail()) {
log << "failed to write " << filename_trace(m_variant, m_benchmark) << endl;
LOG << "failed to write " << filename_trace(m_variant, m_benchmark) << endl;
simulator.clearListeners(this); // cleanup
return false;
}
of.close();
log << "trace written to " << filename_trace(m_variant, m_benchmark) << endl;
LOG << "trace written to " << filename_trace(m_variant, m_benchmark) << endl;
// wait another WEATHER_NUMITER_AFTER measurement loop iterations
bp.setWatchInstructionPointer(wait_end);
@ -270,11 +270,11 @@ bool WeatherMonitorExperiment::performTrace(
simulator.addListener(&ev_count);
}
log << dec << "experiment finished after " << numinstr_after
LOG << dec << "experiment finished after " << numinstr_after
<< " instructions, seeing wait_end " << WEATHER_NUMITER_AFTER << " times" << endl;
if (!writeTraceInfo(numinstr_tracing, numinstr_after)) {
log << "failed to write " << filename_traceinfo(m_variant, m_benchmark) << endl;
LOG << "failed to write " << filename_traceinfo(m_variant, m_benchmark) << endl;
return false;
}
return true;
@ -288,11 +288,11 @@ bool WeatherMonitorExperiment::faultInjection()
#endif
// get an experiment parameter set
log << "asking job server for experiment parameters" << endl;
LOG << "asking job server for experiment parameters" << endl;
WeatherMonitorExperimentData param;
#if !LOCAL
if (!m_jc.getParam(param)) {
log << "Dying." << endl;
LOG << "Dying." << endl;
// communicate that we were told to die
simulator.terminate(1);
}
@ -308,19 +308,19 @@ bool WeatherMonitorExperiment::faultInjection()
unsigned injection_instr = param.msg.fsppilot().injection_instr();
/* get symbols from ELF */
log << "retrieving ELF addresses..." << endl;
LOG << "retrieving ELF addresses..." << endl;
guest_address_t entry, text_start, text_end, data_start, data_end, wait_begin, wait_end, vptr_panic;
if (!readElfSymbols(entry, text_start, text_end, data_start, data_end, wait_begin, wait_end, vptr_panic)) {
log << "failed, essential symbols are missing!" << endl;
LOG << "failed, essential symbols are missing!" << endl;
simulator.terminate(1);
} else {
log << "successfully retrieved ELF's addresses." << endl;
LOG << "successfully retrieved ELF's addresses." << endl;
}
/* get NUMINSTR_TRACING and NUMINSTR_AFTER */
unsigned numinstr_tracing, numinstr_after;
if (!readTraceInfo(numinstr_tracing, numinstr_after)) {
log << "failed to read trace info from " << filename_traceinfo(m_variant, m_benchmark) << endl;
LOG << "failed to read trace info from " << filename_traceinfo(m_variant, m_benchmark) << endl;
simulator.terminate(1);
return false;
}
@ -334,10 +334,10 @@ bool WeatherMonitorExperiment::faultInjection()
// 8 results in one job
WeathermonitorProtoMsg_Result *result = param.msg.add_result();
result->set_bitoffset(bit_offset);
log << dec << "job " << id << " instr " << injection_instr
LOG << dec << "job " << id << " instr " << injection_instr
<< " mem " << data_address << "+" << bit_offset << endl;
log << "restoring state" << endl;
LOG << "restoring state" << endl;
simulator.restore(filename_state(m_variant, m_benchmark).c_str());
// XXX debug
@ -383,7 +383,7 @@ bool WeatherMonitorExperiment::faultInjection()
// note at what IP we did it
uint32_t injection_ip = simulator.getCPU(0).getInstructionPointer();
result->set_iter_before_fi(count_loop_iter_before);
log << "fault injected @ ip " << injection_ip
LOG << "fault injected @ ip " << injection_ip
<< " 0x" << hex << ((int)data) << " -> 0x" << ((int)newdata) << endl;
// sanity check
if (param.msg.fsppilot().has_injection_instr_absolute() &&
@ -391,7 +391,7 @@ bool WeatherMonitorExperiment::faultInjection()
stringstream ss;
ss << "SANITY CHECK FAILED: " << injection_ip
<< " != " << param.msg.fsppilot().injection_instr_absolute();
log << ss.str() << endl;
LOG << ss.str() << endl;
result->set_resulttype(result->UNKNOWN);
result->set_latest_ip(injection_ip);
result->set_details(ss.str());
@ -432,7 +432,7 @@ bool WeatherMonitorExperiment::faultInjection()
#if LOCAL && 0
// XXX debug
log << "enabling tracing" << endl;
LOG << "enabling tracing" << endl;
TracingPlugin tp;
tp.setLogIPOnly(true);
tp.setOstream(&cout);
@ -454,28 +454,28 @@ bool WeatherMonitorExperiment::faultInjection()
result->set_latest_ip(simulator.getCPU(0).getInstructionPointer());
if (ev == &ev_end) {
log << "Result FINISHED (" << dec
LOG << "Result FINISHED (" << dec
<< count_loop_iter_before << "+" << count_loop_iter_after << ")" << endl;
result->set_resulttype(result->FINISHED);
} else if (ev == &ev_timeout) {
log << "Result TIMEOUT (" << dec
LOG << "Result TIMEOUT (" << dec
<< count_loop_iter_before << "+" << count_loop_iter_after << ")" << endl;
result->set_resulttype(result->TIMEOUT);
} else if (ev == &ev_below_text || ev == &ev_beyond_text) {
log << "Result OUTSIDE" << endl;
LOG << "Result OUTSIDE" << endl;
result->set_resulttype(result->OUTSIDE);
} else if (ev == &ev_trap) {
log << dec << "Result TRAP #" << ev_trap.getTriggerNumber() << endl;
LOG << dec << "Result TRAP #" << ev_trap.getTriggerNumber() << endl;
result->set_resulttype(result->TRAP);
stringstream ss;
ss << ev_trap.getTriggerNumber();
result->set_details(ss.str());
} else if (ev == &ev_detected) {
log << dec << "Result DETECTED" << endl;
LOG << dec << "Result DETECTED" << endl;
result->set_resulttype(result->DETECTED);
} else {
log << "Result WTF?" << endl;
LOG << "Result WTF?" << endl;
result->set_resulttype(result->UNKNOWN);
stringstream ss;
@ -485,7 +485,7 @@ bool WeatherMonitorExperiment::faultInjection()
}
// sanity check: do we have exactly 8 results?
if (param.msg.result_size() != 8) {
log << "WTF? param.msg.result_size() != 8" << endl;
LOG << "WTF? param.msg.result_size() != 8" << endl;
} else {
#if !LOCAL
m_jc.sendResult(param);
@ -501,32 +501,32 @@ bool WeatherMonitorExperiment::faultInjection()
bool WeatherMonitorExperiment::run()
{
log << "startup" << endl;
LOG << "startup" << endl;
#if PREREQUISITES
parseOptions();
/* get symbols from ELF */
log << "retrieving ELF addresses..." << endl;
LOG << "retrieving ELF addresses..." << endl;
guest_address_t entry, text_start, text_end, data_start, data_end, wait_begin, wait_end, vptr_panic;
if (!readElfSymbols(entry, text_start, text_end, data_start, data_end, wait_begin, wait_end, vptr_panic)) {
log << "failed, essential symbols are missing!" << endl;
LOG << "failed, essential symbols are missing!" << endl;
simulator.terminate(1);
} else {
log << "successfully retrieved ELF's addresses." << endl;
LOG << "successfully retrieved ELF's addresses." << endl;
}
//STEP 1
if (establishState(entry)) {
log << "STEP 1 (establish state) finished." << endl;
LOG << "STEP 1 (establish state) finished." << endl;
} else {
log << "STEP 1 (establish state) failed!" << endl;
LOG << "STEP 1 (establish state) failed!" << endl;
}
//STEP 2
if (performTrace(entry, data_start, data_end, wait_end)) {
log << "STEP 2 (perform trace) finished." << endl;
LOG << "STEP 2 (perform trace) finished." << endl;
} else {
log << "STEP 2 (perform trace) failed!" << endl;
LOG << "STEP 2 (perform trace) failed!" << endl;
}
#else // !PREREQUISITES i.e. STEP 3 "the actual experiment"

View File

@ -15,7 +15,7 @@ class WeatherMonitorExperiment : public fail::ExperimentFlow {
std::string m_variant, m_benchmark;
static const std::string dir_images;
static const std::string dir_prerequisites;
fail::Logger log;
fail::Logger LOG;
fail::BPSingleListener bp;
std::string filename_elf(const std::string& variant, const std::string& benchmark);
@ -34,7 +34,7 @@ class WeatherMonitorExperiment : public fail::ExperimentFlow {
bool faultInjection();
public:
WeatherMonitorExperiment() : log("Weathermonitor", false) {}
WeatherMonitorExperiment() : LOG("Weathermonitor", false) {}
bool run();
void parseOptions(void);
};