wmoo: additional result: uncorrectable error (DETECTED)

git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1134 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
This commit is contained in:
hsc
2012-04-20 17:13:19 +00:00
parent a674d2dd1b
commit bbd3b0fef1
4 changed files with 13 additions and 2 deletions

View File

@ -226,6 +226,7 @@ bool WeathermonitorExperiment::run()
// - (XXX weird instructions?)
// - (XXX results displayed?)
// - reaches THE END
// - error detected, stop
// additional info:
// - #loop iterations before/after FI
// - (XXX "sane" display?)
@ -238,6 +239,9 @@ bool WeathermonitorExperiment::run()
fi::BPRangeEvent ev_beyond_text(WEATHER_TEXT_END + 1, fi::ANY_ADDR);
sal::simulator.addEvent(&ev_below_text);
sal::simulator.addEvent(&ev_beyond_text);
// error detected
fi::BPEvent ev_detected(WEATHER_FUNC_VPTR_PANIC);
sal::simulator.addEvent(&ev_detected);
#if LOCAL && 0
// XXX debug
@ -276,6 +280,9 @@ bool WeathermonitorExperiment::run()
std::stringstream ss;
ss << ev_trap.getTriggerNumber();
result->set_details(ss.str());
} else if (ev == &ev_detected) {
log << std::dec << "Result DETECTED" << endl;
result->set_resulttype(result->DETECTED);
} else {
log << "Result WTF?" << endl;
result->set_resulttype(result->UNKNOWN);

View File

@ -14,6 +14,8 @@
#define WEATHER_FUNC_WAIT_BEGIN 0x00100f50
// wait_end address
#define WEATHER_FUNC_WAIT_END 0x00100f60
// vptr_panic address (only exists in guarded variant)
#define WEATHER_FUNC_VPTR_PANIC 0x99999999
// number of main loop iterations to trace
// (determines trace length and therefore fault-space width)
#define WEATHER_NUMITER_TRACING 4

View File

@ -3,7 +3,7 @@ set -e
[ ! -e "$1" -o ! -e "$2" ] && echo "usage: $0 vanilla.elf guarded.elf" && exit 1
function addrof() { nm -C $1 | fgrep "$2" | awk '{print $1}'; }
function addrof() { nm -C $1 | (fgrep "$2" || echo 99999999) | awk '{print $1}'; }
cat >experimentInfo.hpp <<EOF
#ifndef __WEATHERMONITOR_EXPERIMENT_INFO_HPP__
@ -22,6 +22,8 @@ cat >experimentInfo.hpp <<EOF
#define WEATHER_FUNC_WAIT_BEGIN 0x`addrof $1 wait_begin`
// wait_end address
#define WEATHER_FUNC_WAIT_END 0x`addrof $1 wait_end`
// vptr_panic address (only exists in guarded variant)
#define WEATHER_FUNC_VPTR_PANIC 0x`addrof $1 vptr_panic`
// number of main loop iterations to trace
// (determines trace length and therefore fault-space width)
#define WEATHER_NUMITER_TRACING 4

View File

@ -29,7 +29,7 @@ message WeathermonitorProtoMsg {
FINISHED = 1;
TRAP = 2;
OUTSIDE = 3;
HALT = 4;
DETECTED = 4;
UNKNOWN = 5;
}
required ResultType resulttype = 2;