Mercurial > hg > truffle
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 |