From 6d17926bac13fa23ebadbe24be365d6907c6ba55 Mon Sep 17 00:00:00 2001 From: Hans-Peter Deifel <hpd@hpdeifel.de> Date: Wed, 14 Dec 2016 10:20:03 +0100 Subject: [PATCH] Debug code to print saved IPs in mockup --- files/mockup_prelude.cc | 8 ++++++++ src/CFG/C.hs | 1 + src/Search/Search.hs | 1 + 3 files changed, 10 insertions(+) diff --git a/files/mockup_prelude.cc b/files/mockup_prelude.cc index ed85350..4e7c2c3 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 c66ab51..1a8a908 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 84cface..5bb29af 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 -- GitLab