|
ETISS 0.11.2
ExtendableTranslatingInstructionSetSimulator(version0.11.2)
|
writes the value of a field before each instruction More...
#include <VariableValueLogger.h>


Public Member Functions | |
| VariableValueLogger (const std::string &field, const std::string &file, std::function< void(std::ostream &out, const std::string &field, uint64_t value)> writer) | |
| virtual void | initCodeBlock (etiss::CodeBlock &block) const |
| called before instructions are translated for the code block | |
| virtual void | finalizeInstrSet (etiss::instr::ModedInstructionSet &) const |
| called after all instructions have been added to allow last changes | |
| void | writeValue () |
| Calls the function specified with writer_ to log the variable. | |
Public Member Functions inherited from etiss::TranslationPlugin | |
| TranslationPlugin () | |
| virtual | ~TranslationPlugin () |
| virtual void | initInstrSet (etiss::instr::ModedInstructionSet &) const |
| called to add instructions to the instruction set | |
| virtual void | finalizeCodeBlock (etiss::CodeBlock &) const |
| called after all instructions have been translated for the code block | |
| virtual void * | getPluginHandle () |
| called to get the handle that is available in translated code via getPoinerCode(). [default: this] | |
Public Member Functions inherited from etiss::Plugin | |
| virtual | ~Plugin () |
| unsigned | getType () |
| InterruptListenerPlugin * | getInterruptListenerPlugin () |
| CoroutinePlugin * | getCoroutinePlugin () |
| SystemWrapperPlugin * | getSystemWrapperPlugin () |
| RegisterDevicePlugin * | getRegisterDevicePlugin () |
| TranslationPlugin * | getTranslationPlugin () |
| std::string | getPluginName () const |
| const std::string & | getLastAssignedCoreName () |
| std::string | toString () const |
Public Member Functions inherited from etiss::ToString | |
| ToString () | |
| virtual | ~ToString () |
Protected Member Functions | |
| virtual std::string | _getPluginName () const |
| returns the name of the Plugin. | |
Protected Member Functions inherited from etiss::TranslationPlugin | |
| std::string | getPointerCode () const |
| returns a C code expression that allows to get or assign a pointer to the variable assigned to this translation plugin. | |
Protected Member Functions inherited from etiss::Plugin | |
| Plugin (unsigned type=0) | |
| virtual void | init (ETISS_CPU *cpu, ETISS_System *system, CPUArch *arch) |
| this function is called before the plugin is used in the cpu execution loop (etiss::CPUCore::execute). | |
| virtual void | cleanup () |
| this function is called after cpu execution loop (etiss::CPUCore::execute) finished. | |
| void | setCorrespondingCPUCoreName (std::string name) |
| virtual void | addedToCPUCore (etiss::CPUCore *core) |
| called as soon a plugin has been added to its CPUCore. | |
| virtual void | removedFromCPUCore (etiss::CPUCore *core) |
| called as soon a plugin has been removed from its CPUCore. | |
Private Attributes | |
| std::string | field_ |
| Name of the field to log. | |
| std::function< void(std::ostream &out, const std::string &field, uint64_t value)> | writer_ |
| Function which specifies the outout format. | |
| std::ofstream | out_ |
| file stream for logger. | |
Additional Inherited Members | |
Static Public Attributes inherited from etiss::Plugin | |
| static const unsigned | INTERRUPTLISTENER = 1 << 0 |
| access to translated code | |
| static const unsigned | COROUTINE = 1 << 1 |
| callback after execution of each translated block | |
| static const unsigned | SYSTEMWRAPPER = 1 << 2 |
| can wrap/change ETISS_System structure at execution start | |
| static const unsigned | REGISTERDEVICE |
| gets noticed of changes to special registers (e.g. mmu register etc. [depends on architecture]) | |
| static const unsigned | TRANSLATION |
| access to translated code during translation phase or when instruction tree is built | |
Protected Attributes inherited from etiss::Plugin | |
| ETISS_CPU * | plugin_cpu_ |
| holds a pointer to the cpu structure. will be set before init call and after cleanup call | |
| ETISS_System * | plugin_system_ |
| holds a pointer to the system structure. | |
| CPUArch * | plugin_arch_ |
| holds a pointer to the CPUArch instance. will be set before init call and after cleanup call | |
| CPUCore * | plugin_core_ |
| holds a pointer to the associated CPUCore instance. | |
writes the value of a field before each instruction
Definition at line 25 of file VariableValueLogger.h.
| etiss::plugin::VariableValueLogger::VariableValueLogger | ( | const std::string & | field, |
| const std::string & | file, | ||
| std::function< void(std::ostream &out, const std::string &field, uint64_t value)> | writer | ||
| ) |
Definition at line 28 of file VariableValueLogger.cpp.
|
protectedvirtual |
returns the name of the Plugin.
Implements etiss::Plugin.
Definition at line 87 of file VariableValueLogger.cpp.
References field_.
|
virtual |
called after all instructions have been added to allow last changes
Reimplemented from etiss::TranslationPlugin.
Definition at line 45 of file VariableValueLogger.cpp.
References etiss::instr::Instruction::addCallback(), etiss::CodeSet::append(), etiss::CodePart::code(), field_, etiss::instr::InstructionSet::foreach(), etiss::instr::VariableInstructionSet::foreach(), etiss::instr::ModedInstructionSet::foreach(), etiss::TranslationPlugin::getPointerCode(), etiss::CodePart::getRegisterDependencies(), etiss::CPUCore::getStruct(), etiss::CodePart::INITIALREQUIRED, and etiss::Plugin::plugin_core_.

|
virtual |
called before instructions are translated for the code block
Reimplemented from etiss::TranslationPlugin.
Definition at line 40 of file VariableValueLogger.cpp.
References etiss::CodeBlock::fileglobalCode().

| void etiss::plugin::VariableValueLogger::writeValue | ( | ) |
Calls the function specified with writer_ to log the variable.
Definition at line 74 of file VariableValueLogger.cpp.
References field_, etiss::CPUCore::getStruct(), ETISS_CPU::instructionPointer, out_, etiss::Plugin::plugin_core_, etiss::Plugin::plugin_cpu_, and writer_.
Referenced by etiss_plugin_VariableValueLogger().


|
private |
Name of the field to log.
Definition at line 44 of file VariableValueLogger.h.
Referenced by _getPluginName(), finalizeInstrSet(), and writeValue().
|
private |
file stream for logger.
Definition at line 53 of file VariableValueLogger.h.
Referenced by VariableValueLogger(), and writeValue().
|
private |
Function which specifies the outout format.
Default output: <field>,
| Reference | to file stream for writing data. |
| Name | of the field to log. |
| Value | of the field to log. |
Definition at line 52 of file VariableValueLogger.h.
Referenced by VariableValueLogger(), and writeValue().