commit 9c086eae61b831d4dd8c07f32fe6c40e5106f05b
parent 072a8412fac148fb89a7c83676abcb32f88ae482
Author: kyle <kyle@0x30.net>
Date: Sun, 18 Sep 2016 08:16:10 -0600
src: show execution count differences
Diffstat:
3 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/src/process_file.cc b/src/process_file.cc
@@ -47,6 +47,8 @@ ProcessFile::ProcessFile(std::string const &path) :
m_shm.read_string(t.abs_file_path);
t.exec_counts = (uint64_t *)m_shm.get_block(t.num_lines * 8);
+ t.exec_counts_last = new uint64_t[t.num_lines]();
+
t.source.resize(t.num_lines);
m_program_loc += t.num_lines;
read_source(t);
@@ -80,18 +82,6 @@ ProcessFile::read_source(struct TranslationUnit &t)
std::getline(file_stream, l);
}
-uint64_t
-ProcessFile::total_execs()
-{
- uint64_t count = 0;
-
- for (auto &t : m_tus)
- for (unsigned int i = 0; i < t.num_lines; ++i)
- count += t.exec_counts[i];
-
- return count;
-}
-
const TranslationUnit *
ProcessFile::find_tu(std::string const &srcname) const
{
@@ -102,6 +92,13 @@ ProcessFile::find_tu(std::string const &srcname) const
}
void
+ProcessFile::save_executions()
+{
+ for (auto &t : m_tus)
+ memcpy(t.exec_counts_last, t.exec_counts, t.num_lines * 8);
+}
+
+void
ProcessFile::read_executions()
{
}
diff --git a/src/process_file.h b/src/process_file.h
@@ -9,6 +9,7 @@ struct TranslationUnit {
uint32_t num_lines;
uint8_t has_execs;
uint64_t *exec_counts;
+ uint64_t *exec_counts_last;
std::vector<std::string> source;
};
@@ -21,9 +22,9 @@ public:
ProcessFile(std::string const &);
const TranslationUnit *find_tu(std::string const &) const;
- uint64_t total_execs();
bool is_alive() const;
- void read_executions();
+ void read_executions();
+ void save_executions();
uint8_t m_major;
uint8_t m_minor;
diff --git a/src/term_main.cc b/src/term_main.cc
@@ -118,7 +118,8 @@ CursesViewer::draw()
int upper_bound = m_size_y - 2 + m_offset;
for (int i = m_offset; i < upper_bound && i < m_cur_tu.num_lines; i++) {
- uint32_t e = m_cur_tu.exec_counts[i];
+ uint64_t e = m_cur_tu.exec_counts[i] - m_cur_tu.exec_counts_last[i];
+
std::string l = m_cur_tu.source[i];
m_total_executions += e;
@@ -144,6 +145,7 @@ CursesViewer::draw()
attroff(COLOR_PAIR(color));
}
+ m_cur_pfile->save_executions();
print_statusbar();
refresh();
}