summaryrefslogtreecommitdiff
path: root/trace_parser.hpp
diff options
context:
space:
mode:
authorZack Rusin <zack@kde.org>2011-09-01 01:50:56 -0400
committerZack Rusin <zack@kde.org>2011-09-01 01:50:56 -0400
commite0df952b67f3ae38aeb0fd7e32942f8fa53ac49f (patch)
treec004c648ebde59b139b15a7b76bcf54ab72160fb /trace_parser.hpp
parent8216d8efc428dd336957433d743af5c4ac2d0d05 (diff)
First working implementation of on-demand-loading of frames/calls.
Diffstat (limited to 'trace_parser.hpp')
-rw-r--r--trace_parser.hpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/trace_parser.hpp b/trace_parser.hpp
index a000986..a9f11f7 100644
--- a/trace_parser.hpp
+++ b/trace_parser.hpp
@@ -29,6 +29,7 @@
#include <iostream>
#include <list>
+#include <set>
#include "trace_file.hpp"
#include "trace_format.hpp"
@@ -57,6 +58,15 @@ protected:
typedef std::vector<BitmaskSig *> BitmaskMap;
BitmaskMap bitmasks;
+ typedef std::set<File::Offset> TraceOffsets;
+ TraceOffsets m_callSigOffsets;
+ TraceOffsets m_structSigOffsets;
+ TraceOffsets m_enumSigOffsets;
+ TraceOffsets m_bitmaskSigOffsets;
+
+ typedef std::map<File::Offset, unsigned> CallNumOffsets;
+ CallNumOffsets m_callNumOffsets;
+
unsigned next_call_no;
public:
@@ -87,6 +97,13 @@ public:
file->setCurrentOffset(offset);
}
+ bool callWithSignature(const File::Offset &offset) const;
+ bool structWithSignature(const File::Offset &offset) const;
+ bool enumWithSignature(const File::Offset &offset) const;
+ bool bitmaskWithSignature(const File::Offset &offset) const;
+ bool hasCallBeenParsed(const File::Offset &offset) const;
+ unsigned callNumForOffset(const File::Offset &offset) const;
+
protected:
void parse_enter(void);