From f24f9f2107dd25ab21cceda3ea61d66999f26748 Mon Sep 17 00:00:00 2001 From: Christian Dietrich Date: Fri, 17 Apr 2015 09:21:03 +0200 Subject: [PATCH] cored-tester: add color_assert listener only if existsing The color_assert_port symbol does not exist in all dOSEK variant, therefore we add the listener only if the symbol exists. Otherwise the invalid handler will trigger on INV_ADDR Change-Id: I7b81940a8413850527efb9e4bae86248794c622c --- src/experiments/cored-tester/config.cmake | 5 +++++ src/experiments/cored-tester/experiment.cc | 10 ++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 src/experiments/cored-tester/config.cmake diff --git a/src/experiments/cored-tester/config.cmake b/src/experiments/cored-tester/config.cmake new file mode 100644 index 00000000..ace8740c --- /dev/null +++ b/src/experiments/cored-tester/config.cmake @@ -0,0 +1,5 @@ +SET(bochs_configure_params "--enable-a20-pin;--enable-x86-64;--enable-cpu-level=6;--enable-ne2000;--enable-acpi;--enable-pci;--enable-usb;--enable-trace-cache;--enable-fast-function-calls;--enable-host-specific-asms;--enable-readline;--enable-clgd54xx;--enable-fpu;--enable-vmx=2;--enable-monitor-mwait;--enable-cdrom;--enable-sb16=linux;--enable-gdb-stub;--with-nogui" CACHE STRING "") + +SET(BUILD_LLVM_DISASSEMBLER ON CACHE BOOL "" FORCE) + +SET(PLUGINS_ACTIVATED "checkpoint;randomgenerator" CACHE STRING "") diff --git a/src/experiments/cored-tester/experiment.cc b/src/experiments/cored-tester/experiment.cc index a5cc698a..f7d6f2a9 100644 --- a/src/experiments/cored-tester/experiment.cc +++ b/src/experiments/cored-tester/experiment.cc @@ -103,8 +103,10 @@ unsigned CoredTester::injectBitFlip(address_t data_address, unsigned data_width, << ") bitpos: " << bitpos << " value: 0x" << hex << setw(2) << setfill('0') << value << " -> 0x" << setw(2) << setfill('0') << injectedval << dec << endl; - if (reginfo.id == RID_PC) + if (reginfo.id == RID_PC) { + m_log << "Redecode current instruction" << endl; redecodeCurrentInstruction(); + } return value; } else { @@ -415,7 +417,11 @@ bool CoredTester::run() { simulator.addListener(&l_panic); simulator.addListener(&l_timeout); simulator.addListener(&l_fail_trace); - simulator.addListener(&l_color_assert_port); + if (s_color_assert_port.isValid()) { + simulator.addListener(&l_color_assert_port); + } else { + m_log << "No color assert port" << endl; + } simulator.addListener(&l_trace_end_marker); // BPSingleListener single_step;