62 // and finally migrate the debugging information into the nmethod
63 // by calling copy_to.
64
65 class DebugToken; // Opaque datatype for stored:
66 // - GrowableArray<ScopeValue*>
67 // - GrowableArray<MonitorValue*>
68
69 // Alias for InvocationEntryBci.
70 // Both constants are used for a pseudo-BCI which refers
71 // to the state just _before_ a method is entered.
72 // SynchronizationEntryBCI is used where the emphasis
73 // is on the implicit monitorenter of a synchronized method.
74 const int SynchronizationEntryBCI = InvocationEntryBci;
75
76 class DIR_Chunk; // private class, a nugget of collected information
77
78 class DebugInformationRecorder: public ResourceObj {
79 public:
80 // constructor
81 DebugInformationRecorder(OopRecorder* oop_recorder);
82
83 // adds an oopmap at a specific offset
84 void add_oopmap(int pc_offset, OopMap* map);
85
86 // adds a jvm mapping at pc-offset, for a safepoint only
87 void add_safepoint(int pc_offset, OopMap* map);
88
89 // adds a jvm mapping at pc-offset, for a non-safepoint (profile point)
90 void add_non_safepoint(int pc_offset);
91
92 // Describes debugging information for a scope at the given pc_offset.
93 // Calls must be in non-decreasing order of pc_offset.
94 // If there are several calls at a single pc_offset,
95 // then they occur in the same order as they were performed by the JVM,
96 // with the most recent (innermost) call being described last.
97 // For a safepoint, the pc_offset must have been mentioned
98 // previously by add_safepoint.
99 // Otherwise, the pc_offset must have been mentioned previously
100 // by add_non_safepoint, and the locals, expressions, and monitors
101 // must all be null.
|
62 // and finally migrate the debugging information into the nmethod
63 // by calling copy_to.
64
65 class DebugToken; // Opaque datatype for stored:
66 // - GrowableArray<ScopeValue*>
67 // - GrowableArray<MonitorValue*>
68
69 // Alias for InvocationEntryBci.
70 // Both constants are used for a pseudo-BCI which refers
71 // to the state just _before_ a method is entered.
72 // SynchronizationEntryBCI is used where the emphasis
73 // is on the implicit monitorenter of a synchronized method.
74 const int SynchronizationEntryBCI = InvocationEntryBci;
75
76 class DIR_Chunk; // private class, a nugget of collected information
77
78 class DebugInformationRecorder: public ResourceObj {
79 public:
80 // constructor
81 DebugInformationRecorder(OopRecorder* oop_recorder);
82 DebugInformationRecorder(OopRecorder* oop_recorder, int data_size, int pcs_length);
83
84 // adds an oopmap at a specific offset
85 void add_oopmap(int pc_offset, OopMap* map);
86
87 // adds a jvm mapping at pc-offset, for a safepoint only
88 void add_safepoint(int pc_offset, OopMap* map);
89
90 // adds a jvm mapping at pc-offset, for a non-safepoint (profile point)
91 void add_non_safepoint(int pc_offset);
92
93 // Describes debugging information for a scope at the given pc_offset.
94 // Calls must be in non-decreasing order of pc_offset.
95 // If there are several calls at a single pc_offset,
96 // then they occur in the same order as they were performed by the JVM,
97 // with the most recent (innermost) call being described last.
98 // For a safepoint, the pc_offset must have been mentioned
99 // previously by add_safepoint.
100 // Otherwise, the pc_offset must have been mentioned previously
101 // by add_non_safepoint, and the locals, expressions, and monitors
102 // must all be null.
|