1 #ifndef ROSE_BinaryAnalysis_ByteCode_Jvm_H
2 #define ROSE_BinaryAnalysis_ByteCode_Jvm_H
3 #include <featureTests.h>
4 #ifdef ROSE_ENABLE_BINARY_ANALYSIS
6 #include <Rose/BinaryAnalysis/ByteCode/Analysis.h>
9 namespace BinaryAnalysis {
14 virtual const uint8_t* bytes()
const {
17 virtual const size_t size()
const {
20 rose_addr_t
const offset()
const {
23 void bytes(
const uint8_t* buf) {
26 void size(
size_t sz) {
29 void offset(rose_addr_t off) {
33 explicit JvmCode(uint8_t* bytes,
size_t size, rose_addr_t offset)
34 : bytes_{bytes}, size_{size}, offset_{offset} {
38 const uint8_t* bytes_;
45 virtual const std::string name()
const;
49 : jfh_{jfh}, sgField_{field} {
59 virtual const std::string name()
const;
60 virtual const Code & code()
const {
79 virtual const std::string name()
const;
80 const uint16_t index()
const {
return index_;}
84 : jfh_{jfh}, index_{index} {
94 virtual const std::string name()
const;
95 const uint16_t index()
const {
return index_;}
99 : jfh_{jfh}, index_{index} {
109 virtual const std::string name()
const;
110 virtual const std::string super_name()
const;
111 virtual const std::vector<std::string> &strings();
112 virtual const std::vector<const Interface*> &interfaces()
const {
115 virtual const std::vector<const Field*> &fields()
const {
118 virtual const std::vector<const Method*> &methods()
const {
121 virtual const std::vector<const Attribute*> &attributes()
const {
134 std::vector<const Field*> fields_;
135 std::vector<const Method*> methods_;
136 std::vector<const Attribute*> attributes_;
137 std::vector<const Interface*> interfaces_;
138 std::vector<std::string> strings_;
Represents an JVM constant pool.
Main namespace for the ROSE library.
const SgAsmInstructionList * get_instruction_list() const
Property: Instruction list.
List of SgAsmInstruction nodes.