Files
fail/tools/import-trace/DCiAOKernelImporter.hpp
Christian Dietrich e3c633c248 tools/import-trace: new tool to import traces into MySQL database
The import tool does support the following import strategies:

- BasicImporter: generates def-use equivalence classes for read and
  write memory accesses
- DCiAOKernelImporter: generates equivalence classes for read access in
  the ciao kernel space.

Change-Id: I8960561d3e14dcf5dffa3ff7a59b61a5e8f7e719
2013-03-22 11:41:25 +01:00

33 lines
1.1 KiB
C++

#ifndef __DCIAO_KERNEL_IMPORTER_H__
#define __DCIAO_KERNEL_IMPORTER_H__
#include "BasicImporter.hpp"
/** \class DCiAOKernelImporter
*
* Strategy for importing traces into the MySQL Database, that cover
* only kernel space data address. A single trace is only added to the
* database, if it has the following form:
*
* - The memory access is after the kernel has passed the
* getEnterKernelAddress(), before it passes the
* getLeaveKernelAddress() again. Short: if the programm is in
* kernel space.
* - Only memory addresses that are located in the os::data::dynamic
* namespace
* - Only memory accesses to addresses that were not written in the
* current kernel space phase.
*/
class DCiAOKernelImporter : public BasicImporter {
protected:
fail::address_t getEnterKernelAddress() { return m_elf->getSymbol("os::dep::KernelStructs::correct").getAddress(); }
fail::address_t getLeaveKernelAddress() { return m_elf->getSymbol("os::dep::KernelStructs::calculate").getAddress(); }
bool inDynamicKernelMemory(fail::address_t addr);
public:
virtual bool copy_to_database(fail::ProtoIStream &ps);
};
#endif