88 void add_non_safepoint(int pc_offset);
89
90 // Describes debugging information for a scope at the given pc_offset.
91 // Calls must be in non-decreasing order of pc_offset.
92 // If there are several calls at a single pc_offset,
93 // then they occur in the same order as they were performed by the JVM,
94 // with the most recent (innermost) call being described last.
95 // For a safepoint, the pc_offset must have been mentioned
96 // previously by add_safepoint.
97 // Otherwise, the pc_offset must have been mentioned previously
98 // by add_non_safepoint, and the locals, expressions, and monitors
99 // must all be null.
100 void describe_scope(int pc_offset,
101 const methodHandle& methodH,
102 ciMethod* method,
103 int bci,
104 bool reexecute,
105 bool rethrow_exception = false,
106 bool is_method_handle_invoke = false,
107 bool return_oop = false,
108 DebugToken* locals = NULL,
109 DebugToken* expressions = NULL,
110 DebugToken* monitors = NULL);
111
112
113 void dump_object_pool(GrowableArray<ScopeValue*>* objects);
114
115 // This call must follow every add_safepoint,
116 // after any intervening describe_scope calls.
117 void end_safepoint(int pc_offset) { end_scopes(pc_offset, true); }
118 void end_non_safepoint(int pc_offset) { end_scopes(pc_offset, false); }
119
120 // helper fuctions for describe_scope to enable sharing
121 DebugToken* create_scope_values(GrowableArray<ScopeValue*>* values);
122 DebugToken* create_monitor_values(GrowableArray<MonitorValue*>* monitors);
123
124 // returns the size of the generated scopeDescs.
125 int data_size();
126 int pcs_size();
127 int oop_size() { return oop_recorder()->oop_size(); }
|
88 void add_non_safepoint(int pc_offset);
89
90 // Describes debugging information for a scope at the given pc_offset.
91 // Calls must be in non-decreasing order of pc_offset.
92 // If there are several calls at a single pc_offset,
93 // then they occur in the same order as they were performed by the JVM,
94 // with the most recent (innermost) call being described last.
95 // For a safepoint, the pc_offset must have been mentioned
96 // previously by add_safepoint.
97 // Otherwise, the pc_offset must have been mentioned previously
98 // by add_non_safepoint, and the locals, expressions, and monitors
99 // must all be null.
100 void describe_scope(int pc_offset,
101 const methodHandle& methodH,
102 ciMethod* method,
103 int bci,
104 bool reexecute,
105 bool rethrow_exception = false,
106 bool is_method_handle_invoke = false,
107 bool return_oop = false,
108 bool return_vt = false,
109 DebugToken* locals = NULL,
110 DebugToken* expressions = NULL,
111 DebugToken* monitors = NULL);
112
113
114 void dump_object_pool(GrowableArray<ScopeValue*>* objects);
115
116 // This call must follow every add_safepoint,
117 // after any intervening describe_scope calls.
118 void end_safepoint(int pc_offset) { end_scopes(pc_offset, true); }
119 void end_non_safepoint(int pc_offset) { end_scopes(pc_offset, false); }
120
121 // helper fuctions for describe_scope to enable sharing
122 DebugToken* create_scope_values(GrowableArray<ScopeValue*>* values);
123 DebugToken* create_monitor_values(GrowableArray<MonitorValue*>* monitors);
124
125 // returns the size of the generated scopeDescs.
126 int data_size();
127 int pcs_size();
128 int oop_size() { return oop_recorder()->oop_size(); }
|