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