1 #ifndef ROSE_BinaryAnalysis_ByteCode_Analysis_H
2 #define ROSE_BinaryAnalysis_ByteCode_Analysis_H
3 #include <featureTests.h>
4 #ifdef ROSE_ENABLE_BINARY_ANALYSIS
6 #include <Rose/BinaryAnalysis/Disassembler/BasicTypes.h>
7 #include <Rose/BinaryAnalysis/Partitioner2/BasicTypes.h>
10 namespace BinaryAnalysis {
21 virtual const uint8_t* bytes()
const = 0;
22 virtual const size_t size()
const = 0;
23 virtual const rose_addr_t offset()
const = 0;
31 virtual const std::string name()
const = 0;
38 virtual const std::string name()
const = 0;
39 virtual const Code & code()
const = 0;
44 virtual void annotate() = 0;
47 std::set<rose_addr_t> targets()
const;
51 const std::vector<BasicBlockPtr>& blocks()
const;
59 rose_addr_t classAddr_;
61 std::vector<BasicBlockPtr> blocks_;
66 virtual const std::string name()
const = 0;
73 virtual const std::string name()
const = 0;
80 virtual const std::string name()
const = 0;
81 virtual const std::string super_name()
const = 0;
82 virtual const std::vector<const Field*> &fields()
const = 0;
83 virtual const std::vector<const Method*> &methods()
const = 0;
84 virtual const std::vector<const Attribute*> &attributes()
const = 0;
85 virtual const std::vector<const Interface*> &interfaces()
const = 0;
86 virtual const std::vector<std::string> &strings() = 0;
87 virtual void partition(
const PartitionerPtr &, std::map<std::string,rose_addr_t> &)
const;
88 virtual void digraph()
const;
89 virtual void dump() = 0;
91 rose_addr_t address()
const {
return address_;}
97 Class(rose_addr_t va) : address_{va} {}
102 virtual const std::string name()
const = 0;
103 virtual const std::vector<const Class*> &classes()
const = 0;
112 virtual const std::string name()
const = 0;
113 virtual const std::vector<const Namespace*> &namespaces()
const = 0;
Main namespace for the ROSE library.
Sawyer::SharedPointer< BasicBlock > BasicBlockPtr
Shared-ownersip pointer for BasicBlock.
Sawyer::SharedPointer< Partitioner > PartitionerPtr
Shared-ownership pointer for Partitioner.
List of SgAsmInstruction nodes.