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;
75 virtual const std::string name()
const;
76 const uint16_t index()
const {
return index_;}
80 : jfh_{jfh}, index_{index} {
90 virtual const std::string name()
const;
91 const uint16_t index()
const {
return index_;}
95 : jfh_{jfh}, index_{index} {
105 virtual const std::string name()
const;
106 virtual const std::string super_name()
const;
107 virtual const std::vector<std::string> &strings();
108 virtual const std::vector<const Interface*> &interfaces()
const {
111 virtual const std::vector<const Field*> &fields()
const {
114 virtual const std::vector<const Method*> &methods()
const {
117 virtual const std::vector<const Attribute*> &attributes()
const {
130 std::vector<const Field*> fields_;
131 std::vector<const Method*> methods_;
132 std::vector<const Attribute*> attributes_;
133 std::vector<const Interface*> interfaces_;
134 std::vector<std::string> strings_;
Represents an JVM constant pool.
Main namespace for the ROSE library.
List of SgAsmInstruction nodes.