mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 06:45:07 +02:00
8027630: SIGSEGV in const char*Klass::external_name()
Reviewed-by: coleenp, sspitsyn, mgronlun
This commit is contained in:
parent
3e62155fec
commit
92187d7583
3 changed files with 44 additions and 1 deletions
|
@ -200,6 +200,12 @@ void ThreadService::oops_do(OopClosure* f) {
|
|||
}
|
||||
}
|
||||
|
||||
void ThreadService::metadata_do(void f(Metadata*)) {
|
||||
for (ThreadDumpResult* dump = _threaddump_list; dump != NULL; dump = dump->next()) {
|
||||
dump->metadata_do(f);
|
||||
}
|
||||
}
|
||||
|
||||
void ThreadService::add_thread_dump(ThreadDumpResult* dump) {
|
||||
MutexLocker ml(Management_lock);
|
||||
if (_threaddump_list == NULL) {
|
||||
|
@ -451,9 +457,16 @@ void ThreadDumpResult::oops_do(OopClosure* f) {
|
|||
}
|
||||
}
|
||||
|
||||
void ThreadDumpResult::metadata_do(void f(Metadata*)) {
|
||||
for (ThreadSnapshot* ts = _snapshots; ts != NULL; ts = ts->next()) {
|
||||
ts->metadata_do(f);
|
||||
}
|
||||
}
|
||||
|
||||
StackFrameInfo::StackFrameInfo(javaVFrame* jvf, bool with_lock_info) {
|
||||
_method = jvf->method();
|
||||
_bci = jvf->bci();
|
||||
_class_holder = _method->method_holder()->klass_holder();
|
||||
_locked_monitors = NULL;
|
||||
if (with_lock_info) {
|
||||
ResourceMark rm;
|
||||
|
@ -477,6 +490,11 @@ void StackFrameInfo::oops_do(OopClosure* f) {
|
|||
f->do_oop((oop*) _locked_monitors->adr_at(i));
|
||||
}
|
||||
}
|
||||
f->do_oop(&_class_holder);
|
||||
}
|
||||
|
||||
void StackFrameInfo::metadata_do(void f(Metadata*)) {
|
||||
f(_method);
|
||||
}
|
||||
|
||||
void StackFrameInfo::print_on(outputStream* st) const {
|
||||
|
@ -620,6 +638,14 @@ void ThreadStackTrace::oops_do(OopClosure* f) {
|
|||
}
|
||||
}
|
||||
|
||||
void ThreadStackTrace::metadata_do(void f(Metadata*)) {
|
||||
int length = _frames->length();
|
||||
for (int i = 0; i < length; i++) {
|
||||
_frames->at(i)->metadata_do(f);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ConcurrentLocksDump::~ConcurrentLocksDump() {
|
||||
if (_retain_map_on_free) {
|
||||
return;
|
||||
|
@ -823,6 +849,13 @@ void ThreadSnapshot::oops_do(OopClosure* f) {
|
|||
}
|
||||
}
|
||||
|
||||
void ThreadSnapshot::metadata_do(void f(Metadata*)) {
|
||||
if (_stack_trace != NULL) {
|
||||
_stack_trace->metadata_do(f);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
DeadlockCycle::DeadlockCycle() {
|
||||
_is_deadlock = false;
|
||||
_threads = new (ResourceObj::C_HEAP, mtInternal) GrowableArray<JavaThread*>(INITIAL_ARRAY_SIZE, true);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue