From 2098f2031e9fb474df9d4ed35d9d6fef836b0e7e Mon Sep 17 00:00:00 2001
From: Hans-Peter Deifel <hpd@hpdeifel.de>
Date: Tue, 28 Mar 2017 08:45:49 +0200
Subject: [PATCH] prelude: Add function to print hexdump of OS state

Useful for debugging.
---
 files/mockup_prelude.cc | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/files/mockup_prelude.cc b/files/mockup_prelude.cc
index 4f4b7c9..d25edff 100644
--- a/files/mockup_prelude.cc
+++ b/files/mockup_prelude.cc
@@ -99,6 +99,26 @@ uint32_t hash_os_state() {
     return first_hash ^ second_hash;
 }
 
+void hex_os_state() {
+    const uint8_t *start = (const uint8_t*)&_sdata_os_canonical;
+    const uint8_t *end = (const uint8_t*)&_edata_os_canonical;
+    uint32_t len = end-start;
+
+    printf("os-hex: len:%d 0x", len);
+    for (const uint8_t *i = start; i < end; i++) {
+	    printf("%02x", *i);
+    }
+
+    start = (const uint8_t*)&_sdata_arch_canonical;
+    end = (const uint8_t*)&_edata_arch_canonical;
+    len = end-start;
+    printf("  |  arch-hex: len:%d 0x", len);
+    for (const uint8_t *i = start; i < end; i++) {
+	    printf("%02x", *i);
+    }
+    printf("\n");
+}
+
 void _print_os_state(const char *format, const char *syscall, const char *func) {
 	printf(format, hash_os_state(), syscall, func);
 	printf("\n");
-- 
GitLab