diff --git a/files/mockup_prelude.cc b/files/mockup_prelude.cc index ed85350f287a86cddb3e890d8b881772e5310275..4e7c2c37be21fce3f612e8a1fa00eb64f443efd9 100644 --- a/files/mockup_prelude.cc +++ b/files/mockup_prelude.cc @@ -8,6 +8,14 @@ extern const uint32_t _sdata_os_canonical, _edata_os_canonical; extern const uint32_t _sdata_arch_canonical, _edata_arch_canonical; } +namespace arch { + extern void* OS_Idle_ip; + extern void* OS_ISR1_ip; + extern void* OS_H1_ip; + extern void* OS_H2_ip; + extern void* OS_H3_ip; +} + // ********************************************************************** // Murmur3 implementation // diff --git a/src/CFG/C.hs b/src/CFG/C.hs index c66ab51576316cacf0845e0083f20647cf495699..1a8a9089107aa9015c49af21f8b348f760078fbf 100644 --- a/src/CFG/C.hs +++ b/src/CFG/C.hs @@ -89,6 +89,7 @@ preIdleHook interrupts = do return $ "void PreIdleHook() {\n" + <> "kout << \"IPs: \" << arch::OS_Idle_ip << ',' << arch::OS_ISR1_ip << ',' << arch::OS_H1_ip << ',' << arch::OS_H2_ip << ',' << arch::OS_H3_ip << endl;" <> " _print_os_state(\"PreIdleHook\", __func__);\n" <> triggerCode <> " ShutdownMachine();\n" diff --git a/src/Search/Search.hs b/src/Search/Search.hs index 84cface256a62b8803c780464d96c6fb4c117445..5bb29afb884c99ec0ca66a169eb081f3a0e134ba 100644 --- a/src/Search/Search.hs +++ b/src/Search/Search.hs @@ -155,6 +155,7 @@ parseLine handle = do ("Decision":num:_) -> return $ Decision (read $ T.unpack num) ["Function",func,"before","syscall",call,"in","state",state] -> return $ NewState $ Vertex state (Metadata func call) + _ -> parseLine handle -- ignore unknown output handleLine :: Handle -> IORef State -> IO LineOut handleLine pstdin state = parseLine pstdin >>= \case