comparison src/share/vm/runtime/frame.cpp @ 1119:547f81740344

6361589: Print out stack trace for target thread of GC crash Summary: If GC crashed with java thread involved, print out the java stack trace in error report Reviewed-by: never, ysr, coleenp, dholmes
author minqi
date Fri, 11 Dec 2009 11:09:49 -0800
parents 148e5441d916
children 9b9c1ee9b3f6
comparison
equal deleted inserted replaced
1118:3115100553b5 1119:547f81740344
1188 entry_frame_call_wrapper()->oops_do(f); 1188 entry_frame_call_wrapper()->oops_do(f);
1189 } 1189 }
1190 1190
1191 1191
1192 void frame::oops_do_internal(OopClosure* f, CodeBlobClosure* cf, RegisterMap* map, bool use_interpreter_oop_map_cache) { 1192 void frame::oops_do_internal(OopClosure* f, CodeBlobClosure* cf, RegisterMap* map, bool use_interpreter_oop_map_cache) {
1193 if (is_interpreted_frame()) { oops_interpreted_do(f, map, use_interpreter_oop_map_cache); 1193 #ifndef PRODUCT
1194 } else if (is_entry_frame()) { oops_entry_do (f, map); 1194 // simulate GC crash here to dump java thread in error report
1195 } else if (CodeCache::contains(pc())) { oops_code_blob_do (f, cf, map); 1195 if (CrashGCForDumpingJavaThread) {
1196 char *t = NULL;
1197 *t = 'c';
1198 }
1199 #endif
1200 if (is_interpreted_frame()) {
1201 oops_interpreted_do(f, map, use_interpreter_oop_map_cache);
1202 } else if (is_entry_frame()) {
1203 oops_entry_do(f, map);
1204 } else if (CodeCache::contains(pc())) {
1205 oops_code_blob_do(f, cf, map);
1196 } else { 1206 } else {
1197 ShouldNotReachHere(); 1207 ShouldNotReachHere();
1198 } 1208 }
1199 } 1209 }
1200 1210