From 78327626d0b211a2edba3d00a440f3f24a4eccb4 Mon Sep 17 00:00:00 2001 From: Derek Christ Date: Fri, 13 Aug 2021 11:35:42 +0200 Subject: [PATCH] Dump McConfig and Memspec into db file Instead of inserting the relative paths to the McConfig and Memspec files, dump their contents into the database directly. --- DRAMSys/library/src/common/TlmRecorder.cpp | 11 +++++++++-- DRAMSys/traceAnalyzer/scripts/memUtil.py | 4 ++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/DRAMSys/library/src/common/TlmRecorder.cpp b/DRAMSys/library/src/common/TlmRecorder.cpp index 100411cb..15a54d35 100644 --- a/DRAMSys/library/src/common/TlmRecorder.cpp +++ b/DRAMSys/library/src/common/TlmRecorder.cpp @@ -342,8 +342,15 @@ void TlmRecorder::insertGeneralInfo() sqlite3_bind_int(insertGeneralInfoStatement, 5, static_cast(Configuration::getInstance().memSpec->numberOfBanks)); sqlite3_bind_int(insertGeneralInfoStatement, 6, static_cast(Configuration::getInstance().memSpec->tCK.value())); sqlite3_bind_text(insertGeneralInfoStatement, 7, "PS", 2, nullptr); - sqlite3_bind_text(insertGeneralInfoStatement, 8, mcconfig.c_str(), static_cast(mcconfig.length()), nullptr); - sqlite3_bind_text(insertGeneralInfoStatement, 9, memspec.c_str(), static_cast(memspec.length()), nullptr); + + std::fstream mcconfig_stream, memspec_stream; + mcconfig_stream.open(mcconfig, std::ios::in); + memspec_stream.open(memspec, std::ios::in); + std::string mcconfig_dump((std::istreambuf_iterator(mcconfig_stream)), (std::istreambuf_iterator())); + std::string memspec_dump((std::istreambuf_iterator(memspec_stream)), (std::istreambuf_iterator())); + + sqlite3_bind_text(insertGeneralInfoStatement, 8, mcconfig_dump.c_str(), static_cast(mcconfig_dump.length()), nullptr); + sqlite3_bind_text(insertGeneralInfoStatement, 9, memspec_dump.c_str(), static_cast(memspec_dump.length()), nullptr); sqlite3_bind_text(insertGeneralInfoStatement, 10, traces.c_str(), static_cast(traces.length()), nullptr); if (!Configuration::getInstance().enableWindowing) sqlite3_bind_int64(insertGeneralInfoStatement, 11, 0); diff --git a/DRAMSys/traceAnalyzer/scripts/memUtil.py b/DRAMSys/traceAnalyzer/scripts/memUtil.py index 96b0bc54..69885ec0 100755 --- a/DRAMSys/traceAnalyzer/scripts/memUtil.py +++ b/DRAMSys/traceAnalyzer/scripts/memUtil.py @@ -17,7 +17,7 @@ class MCConfig(object): cursor = dbconnection.cursor() cursor.execute("SELECT MCconfig FROM GeneralInfo") result = cursor.fetchone() - self.jsonMCConfig = json.load(open(result[0])) + self.jsonMCConfig = json.loads(result[0]) class MemSpec(object): @@ -39,7 +39,7 @@ class MemSpec(object): cursor = dbconnection.cursor() cursor.execute("SELECT Memspec FROM GeneralInfo") result = cursor.fetchone() - self.jsonMemSpec = json.load(open(result[0])) + self.jsonMemSpec = json.loads(result[0]) def getClock(dbconnection):