diff options
Diffstat (limited to 'covoar/ObjdumpProcessor.h')
-rw-r--r-- | covoar/ObjdumpProcessor.h | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/covoar/ObjdumpProcessor.h b/covoar/ObjdumpProcessor.h deleted file mode 100644 index 283ac73..0000000 --- a/covoar/ObjdumpProcessor.h +++ /dev/null @@ -1,165 +0,0 @@ -/*! @file ObjdumpProcessor.h - * @brief ObjdumpProcessor Specification - * - * This file contains the specification of the ObjdumpProcessor class. - */ - -#ifndef __OBJDUMP_PROCESSOR_H__ -#define __OBJDUMP_PROCESSOR_H__ - -#include <list> -#include <string> - -#include "ExecutableInfo.h" -#include "TargetBase.h" - -namespace Coverage { - - /*! @class ObjdumpProcessor - * - * This class implements the functionality which reads the output of - * an objdump. Various information is extracted from the objdump line - * to support analysis and report writing. Analysis of the objdump line - * also allows for identification of "nops". For the purpose of coverage - * analysis, nops in the executable may be ignored. Compilers often - * produce nops to align functions on particular alignment boundaries - * and the nop between functions can not possibly be executed. - */ - class ObjdumpProcessor { - - public: - - /*! - * This type defines the elements of an objdump line. - */ - typedef struct { - /*! - * This member variable contains the actual line from the object dump. - */ - std::string line; - - /*! - * This member variable contains the address from the object dump line. - */ - uint32_t address; - - /*! - * This member variable contains an indication of whether the line - * is an instruction. - */ - bool isInstruction; - - /*! - * This member variable contains an indication of whether the line - * is a nop instruction. - */ - bool isNop; - - /*! - * This member variable contains the size of the nop instruction. - */ - int nopSize; - - /*! - * This member variable contains an indication of whether the line - * is a branch instruction. - */ - bool isBranch; - - } objdumpLine_t; - - /*! - * This object defines a list of object dump lines - * for a file. - */ - typedef std::list<objdumpLine_t> objdumpLines_t; - - - /*! - * This object defines a list of instruction addresses - * that will be extracted from the objdump file. - */ - typedef std::list<uint32_t> objdumpFile_t; - - /*! - * This method constructs an ObjdumpProcessor instance. - */ - ObjdumpProcessor(); - - /*! - * This method destructs an ObjdumpProcessor instance. - */ - virtual ~ObjdumpProcessor(); - - uint32_t determineLoadAddress( - ExecutableInfo* theExecutable - ); - - /*! - * This method returns a file pointer to the objdump file - * for the given file name. - */ - FILE* getFile( std::string fileName ); - - /*! - * This method fills the objdumpList list with all the - * instruction addresses in the object dump file. - */ - void loadAddressTable ( - ExecutableInfo* const executableInformation - ); - - /*! - * This method generates and processes an object dump for - * the specified executable. - */ - void load( - ExecutableInfo* const executableInformation - ); - - /*! - * This method returns the next address in othe objdumpList. - */ - uint32_t getAddressAfter( uint32_t address ); - - /*! - * This method returns true if the instrucation is - * an instruction that results in a code branch, otherwise - * it returns false. - */ - bool IsBranch( const char *instruction ); - - /*! - * This method returns true if the instruction from - * the given line in the objdmp file is a branch instruction, - * otherwise it returns false. - */ - bool isBranchLine( - const char* const line - ); - - private: - - /*! - * This variable consists of a list of all instruction addresses - * extracted from the obj dump file. - */ - objdumpFile_t objdumpList; - - /*! - * This method determines whether the specified line is a - * nop instruction. - * - * @param[in] line contains the object dump line to check - * @param[out] size is set to the size in bytes of the nop - * - * @return Returns TRUE if the instruction is a nop, FALSE otherwise. - */ - bool isNop( - const char* const line, - int& size - ); - - }; -} -#endif |