equal
deleted
inserted
replaced
27 |
27 |
28 #include "jfr/utilities/jfrAllocation.hpp" |
28 #include "jfr/utilities/jfrAllocation.hpp" |
29 #include "jfr/utilities/jfrTypes.hpp" |
29 #include "jfr/utilities/jfrTypes.hpp" |
30 |
30 |
31 class frame; |
31 class frame; |
32 class InstanceKlass; |
|
33 class JavaThread; |
32 class JavaThread; |
34 class JfrCheckpointWriter; |
33 class JfrCheckpointWriter; |
35 class JfrChunkWriter; |
34 class JfrChunkWriter; |
36 class Method; |
35 class Method; |
37 |
36 |
38 class JfrStackFrame { |
37 class JfrStackFrame { |
39 friend class ObjectSampleCheckpoint; |
38 friend class ObjectSampleCheckpoint; |
40 private: |
39 private: |
41 mutable InstanceKlass* _klass; |
40 const Method* _method; |
42 traceid _methodid; |
41 traceid _methodid; |
43 mutable int _line; |
42 mutable int _line; |
44 int _bci; |
43 int _bci; |
45 u1 _type; |
44 u1 _type; |
46 |
45 |
47 public: |
46 public: |
48 JfrStackFrame(const traceid& id, int bci, int type, InstanceKlass* klass); |
47 JfrStackFrame(const traceid& id, int bci, int type, const Method* method); |
49 JfrStackFrame(const traceid& id, int bci, int type, int lineno); |
48 JfrStackFrame(const traceid& id, int bci, int type, int lineno); |
50 |
49 |
51 bool equals(const JfrStackFrame& rhs) const; |
50 bool equals(const JfrStackFrame& rhs) const; |
52 void write(JfrChunkWriter& cw) const; |
51 void write(JfrChunkWriter& cw) const; |
53 void write(JfrCheckpointWriter& cpw) const; |
52 void write(JfrCheckpointWriter& cpw) const; |
67 friend class JfrStackTraceRepository; |
66 friend class JfrStackTraceRepository; |
68 friend class ObjectSampleCheckpoint; |
67 friend class ObjectSampleCheckpoint; |
69 friend class ObjectSampler; |
68 friend class ObjectSampler; |
70 friend class OSThreadSampler; |
69 friend class OSThreadSampler; |
71 friend class StackTraceResolver; |
70 friend class StackTraceResolver; |
72 |
|
73 private: |
71 private: |
74 const JfrStackTrace* _next; |
72 const JfrStackTrace* _next; |
75 JfrStackFrame* _frames; |
73 JfrStackFrame* _frames; |
76 traceid _id; |
74 traceid _id; |
77 unsigned int _hash; |
75 unsigned int _hash; |
100 |
98 |
101 bool have_lineno() const { return _lineno; } |
99 bool have_lineno() const { return _lineno; } |
102 bool full_stacktrace() const { return _reached_root; } |
100 bool full_stacktrace() const { return _reached_root; } |
103 |
101 |
104 JfrStackTrace(traceid id, const JfrStackTrace& trace, const JfrStackTrace* next); |
102 JfrStackTrace(traceid id, const JfrStackTrace& trace, const JfrStackTrace* next); |
105 void operator=(const JfrStackTrace& trace); |
103 JfrStackTrace(JfrStackFrame* frames, u4 max_frames); |
|
104 ~JfrStackTrace(); |
106 |
105 |
107 public: |
106 public: |
108 JfrStackTrace(JfrStackFrame* frames, u4 max_frames); |
|
109 ~JfrStackTrace(); |
|
110 unsigned int hash() const { return _hash; } |
107 unsigned int hash() const { return _hash; } |
111 traceid id() const { return _id; } |
108 traceid id() const { return _id; } |
112 u4 number_of_frames() const { return _nr_of_frames; } |
|
113 }; |
109 }; |
114 |
110 |
115 #endif // SHARE_JFR_RECORDER_STACKTRACE_JFRSTACKTRACE_HPP |
111 #endif // SHARE_JFR_RECORDER_STACKTRACE_JFRSTACKTRACE_HPP |