import-trace: introduce AdvancedMemoryImporter

A MemoryImporter that additionally imports Relyzer-style conditional
branch history, instruction opcodes, and a virtual
duration=time2-time1+1 column (MariaDB 5.2+ only) for fault-space
pruning purposes.

Change-Id: I6764a26fa8aae21655be44134b88fdee85e67ff6
This commit is contained in:
Horst Schirmeier
2013-07-05 16:59:30 +02:00
parent 12b539ff75
commit ba7c663551
9 changed files with 208 additions and 1 deletions

View File

@ -75,6 +75,13 @@ public:
virtual bool cb_commandline_init() { return true; }
virtual bool create_database();
/**
* Allows specialized importers to add more table columns instead of
* completely overriding create_database(). The returned SQL CREATE TABLE
* snippet should be terminated with a comma if non-empty. Should call and
* pass through their parent's implementation.
*/
virtual std::string database_additional_columns() { return ""; }
virtual bool copy_to_database(fail::ProtoIStream &ps);
virtual bool clear_database();
/**
@ -96,7 +103,11 @@ public:
Trace_Event &ev) = 0;
virtual bool handle_mem_event(fail::simtime_t curtime, instruction_count_t instr,
Trace_Event &ev) = 0;
/**
* May be overridden by importers that need to do stuff after the last
* event was consumed.
*/
virtual bool finalize() { return true; }
void set_elf(fail::ElfReader *elf) { m_elf = elf; }