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.
102 void describe_scope(int pc_offset,
103 const methodHandle& methodH,
104 ciMethod* method,
105 int bci,
106 bool reexecute,
107 bool rethrow_exception = false,
108 bool is_method_handle_invoke = false,
109 bool return_oop = false,
110 bool has_ea_local_in_scope = false,
111 bool arg_escape = false,
112 DebugToken* locals = nullptr,
113 DebugToken* expressions = nullptr,
114 DebugToken* monitors = nullptr);
115
116
117 void dump_object_pool(GrowableArray<ScopeValue*>* objects);
118
119 // This call must follow every add_safepoint,
120 // after any intervening describe_scope calls.
121 void end_safepoint(int pc_offset) { end_scopes(pc_offset, true); }
122 void end_non_safepoint(int pc_offset) { end_scopes(pc_offset, false); }
123
124 // helper functions for describe_scope to enable sharing
125 DebugToken* create_scope_values(GrowableArray<ScopeValue*>* values);
126 DebugToken* create_monitor_values(GrowableArray<MonitorValue*>* monitors);
127
128 // returns the size of the generated scopeDescs.
129 int data_size();
|
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.
102 void describe_scope(int pc_offset,
103 const methodHandle& methodH,
104 ciMethod* method,
105 int bci,
106 bool reexecute,
107 bool rethrow_exception = false,
108 bool is_method_handle_invoke = false,
109 bool return_oop = false,
110 bool return_scalarized = false,
111 bool has_ea_local_in_scope = false,
112 bool arg_escape = false,
113 DebugToken* locals = nullptr,
114 DebugToken* expressions = nullptr,
115 DebugToken* monitors = nullptr);
116
117
118 void dump_object_pool(GrowableArray<ScopeValue*>* objects);
119
120 // This call must follow every add_safepoint,
121 // after any intervening describe_scope calls.
122 void end_safepoint(int pc_offset) { end_scopes(pc_offset, true); }
123 void end_non_safepoint(int pc_offset) { end_scopes(pc_offset, false); }
124
125 // helper functions for describe_scope to enable sharing
126 DebugToken* create_scope_values(GrowableArray<ScopeValue*>* values);
127 DebugToken* create_monitor_values(GrowableArray<MonitorValue*>* monitors);
128
129 // returns the size of the generated scopeDescs.
130 int data_size();
|