add injection address to results
Change-Id: I7966f97b8c09bbd6510ca6066dd40be398b54de3
This commit is contained in:
@ -15,7 +15,7 @@ BAK=experimentInfo.hpp.bak
|
|||||||
CFG=experimentInfo.hpp
|
CFG=experimentInfo.hpp
|
||||||
FAIL_CMD="fail-client -q" # -rc bochs-dbg.rc"
|
FAIL_CMD="fail-client -q" # -rc bochs-dbg.rc"
|
||||||
FAILDIR=/home/doebel/src/fail
|
FAILDIR=/home/doebel/src/fail
|
||||||
DBNAME=fiasco
|
DBNAME=fail
|
||||||
|
|
||||||
if [ -n "$1" ] ; then
|
if [ -n "$1" ] ; then
|
||||||
if [ "$1" = "mem" ]; then
|
if [ "$1" = "mem" ]; then
|
||||||
|
|||||||
@ -44,14 +44,15 @@ message L4SysProtoMsg {
|
|||||||
optional RegisterType register_offset = 3;
|
optional RegisterType register_offset = 3;
|
||||||
|
|
||||||
// instruction pointer where injection was done
|
// instruction pointer where injection was done
|
||||||
optional uint32 injection_ip = 4;
|
optional int32 injection_ip = 4;
|
||||||
// result type, see above
|
// result type, see above
|
||||||
optional ResultType resulttype = 5;
|
optional ResultType resulttype = 5;
|
||||||
// result data, depending on resulttype (see source code)
|
// result data, depending on resulttype (see source code)
|
||||||
optional uint32 resultdata = 6;
|
optional int32 resultdata = 6;
|
||||||
// generated output
|
// generated output
|
||||||
optional string output = 7;
|
optional string output = 7;
|
||||||
// optional textual description of what happened
|
// optional textual description of what happened
|
||||||
optional string details = 8;
|
optional string details = 8;
|
||||||
|
optional int32 injection_address = 9;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -68,8 +68,7 @@ void AdvancedMemoryImporter::insert_delayed_entries(bool finalizing)
|
|||||||
if (it->branches_before != last_branches_before) {
|
if (it->branches_before != last_branches_before) {
|
||||||
branchmask = 0;
|
branchmask = 0;
|
||||||
int pos = std::max(-(signed)BRANCH_WINDOW_SIZE, - (signed) it->branches_before);
|
int pos = std::max(-(signed)BRANCH_WINDOW_SIZE, - (signed) it->branches_before);
|
||||||
int maxpos = std::min((signed)BRANCH_WINDOW_SIZE,
|
int maxpos = std::min((signed)BRANCH_WINDOW_SIZE, (signed)(branches_taken.size() - it->branches_before));
|
||||||
(signed)branches_taken.size() - (signed)it->branches_before);
|
|
||||||
for (; pos < maxpos; ++pos) {
|
for (; pos < maxpos; ++pos) {
|
||||||
branchmask |=
|
branchmask |=
|
||||||
((unsigned) branches_taken[it->branches_before + pos])
|
((unsigned) branches_taken[it->branches_before + pos])
|
||||||
|
|||||||
Reference in New Issue
Block a user