From 9b8ab29d26494bd54353fa416ccf71cd31b99b1e Mon Sep 17 00:00:00 2001 From: George Hotz Date: Tue, 23 Sep 2014 19:13:15 -0400 Subject: [PATCH] fix the qiradb to memcommit loads --- {vim => extra/vim}/qira.vim | 0 middleware/qira_config.py | 1 + qiradb/VERSION | 2 +- qiradb/qiradb/Trace.cpp | 28 +++++++++++++++------------- 4 files changed, 17 insertions(+), 14 deletions(-) rename {vim => extra/vim}/qira.vim (100%) diff --git a/vim/qira.vim b/extra/vim/qira.vim similarity index 100% rename from vim/qira.vim rename to extra/vim/qira.vim diff --git a/middleware/qira_config.py b/middleware/qira_config.py index 72483ad3..fa6b30ce 100644 --- a/middleware/qira_config.py +++ b/middleware/qira_config.py @@ -30,6 +30,7 @@ WITH_IDA = False try: from r2.r_core import RCore WITH_RADARE = True + WITH_STATIC = True except: WITH_RADARE = False diff --git a/qiradb/VERSION b/qiradb/VERSION index 9459d4ba..5625e59d 100644 --- a/qiradb/VERSION +++ b/qiradb/VERSION @@ -1 +1 @@ -1.1 +1.2 diff --git a/qiradb/qiradb/Trace.cpp b/qiradb/qiradb/Trace.cpp index 0b82b50a..aae8aef2 100644 --- a/qiradb/qiradb/Trace.cpp +++ b/qiradb/qiradb/Trace.cpp @@ -203,19 +203,21 @@ void Trace::process() { } if (type == 'S') { pages_[c->address & PAGE_MASK] |= PAGE_WRITE; - int byte_count = (c->flags&SIZE_MASK)/8; - uint64_t data = c->data; - if (is_big_endian_) { - for (int i = byte_count-1; i >= 0; --i) { - commit_memory(c->clnum, c->address+i, data&0xFF); - data >>= 8; - } - } else { - // little endian - for (int i = 0; i < byte_count; i++) { - commit_memory(c->clnum, c->address+i, data&0xFF); - data >>= 8; - } + } + + // no harm in doing the memory commit every time there's a load, right? + int byte_count = (c->flags&SIZE_MASK)/8; + uint64_t data = c->data; + if (is_big_endian_) { + for (int i = byte_count-1; i >= 0; --i) { + commit_memory(c->clnum, c->address+i, data&0xFF); + data >>= 8; + } + } else { + // little endian + for (int i = 0; i < byte_count; i++) { + commit_memory(c->clnum, c->address+i, data&0xFF); + data >>= 8; } } }