< prev index next >

src/share/vm/jfr/recorder/stacktrace/jfrStackTraceRepository.hpp

Print this page
rev 9464 : PR for JDK8

*** 94,103 **** --- 94,105 ---- class JfrStackTraceRepository : public JfrCHeapObj { friend class JfrRecorder; friend class JfrRecorderService; friend class ObjectSampler; + friend class RecordStackTrace; + friend class StackTraceWrite; friend class WriteObjectSampleStacktrace; class StackTrace : public JfrCHeapObj { friend class JfrStackTrace; friend class JfrStackTraceRepository;
*** 124,142 **** }; private: static const u4 TABLE_SIZE = 2053; StackTrace* _table[TABLE_SIZE]; ! traceid _next_id; u4 _entries; traceid add_trace(const JfrStackTrace& stacktrace); ! static traceid add(const JfrStackTrace* stacktrace, JavaThread* thread); traceid record_for(JavaThread* thread, int skip, JfrStackFrame* frames, u4 max_frames); size_t write_impl(JfrChunkWriter& cw, bool clear); ! const StackTrace* resolve_entry(unsigned int hash, traceid id) const; static void write_metadata(JfrCheckpointWriter& cpw); static bool fill_stacktrace_for(JavaThread* thread, JfrStackTrace* stacktrace, int skip); JfrStackTraceRepository(); --- 126,146 ---- }; private: static const u4 TABLE_SIZE = 2053; StackTrace* _table[TABLE_SIZE]; ! u4 _last_entries; u4 _entries; traceid add_trace(const JfrStackTrace& stacktrace); ! static traceid add_for_leak_profiler(const JfrStackTrace* stacktrace, JavaThread* thread); traceid record_for(JavaThread* thread, int skip, JfrStackFrame* frames, u4 max_frames); size_t write_impl(JfrChunkWriter& cw, bool clear); ! static const StackTrace* lookup_for_leak_profiler(unsigned int hash, traceid id); ! static void record_for_leak_profiler(JavaThread* thread, JfrStackTrace* stacktrace, int skip = 0); ! static void clear_leak_profiler(); static void write_metadata(JfrCheckpointWriter& cpw); static bool fill_stacktrace_for(JavaThread* thread, JfrStackTrace* stacktrace, int skip); JfrStackTraceRepository();
*** 145,157 **** static void destroy(); static JfrStackTraceRepository& instance(); public: static traceid add(const JfrStackTrace& stacktrace); static traceid record(Thread* thread, int skip = 0); ! traceid write(JfrCheckpointWriter& cpw, traceid id, unsigned int hash); size_t write(JfrChunkWriter& cw, bool clear); ! size_t clear(); }; #endif // SHARE_VM_JFR_RECORDER_STACKTRACE_JFRSTACKTRACEREPOSITORY_HPP --- 149,164 ---- static void destroy(); static JfrStackTraceRepository& instance(); public: + static JfrStackTraceRepository& leak_profiler_instance(); + static traceid add(JfrStackTraceRepository& repo, const JfrStackTrace& stacktrace); static traceid add(const JfrStackTrace& stacktrace); static traceid record(Thread* thread, int skip = 0); ! static traceid write_for_leak_profiler(JfrCheckpointWriter& cpw, traceid id, unsigned int hash); size_t write(JfrChunkWriter& cw, bool clear); ! static size_t clear(); ! static size_t clear(JfrStackTraceRepository& repo); }; #endif // SHARE_VM_JFR_RECORDER_STACKTRACE_JFRSTACKTRACEREPOSITORY_HPP
< prev index next >