8306510: Print number of threads and stack sizes in error reports

Reviewed-by: gziemski, dholmes
This commit is contained in:
Thomas Stuefe 2023-05-02 12:18:23 +00:00
parent a8d16dea8e
commit ea9201f420
4 changed files with 32 additions and 10 deletions

View file

@ -1515,12 +1515,13 @@ void JavaThread::print_on_error(outputStream* st, char *buf, int buflen) const {
st->print("%s \"%s\"", type_name(), get_thread_name_string(buf, buflen));
Thread* current = Thread::current_or_null_safe();
assert(current != nullptr, "cannot be called by a detached thread");
st->fill_to(60);
if (!current->is_Java_thread() || JavaThread::cast(current)->is_oop_safe()) {
// Only access threadObj() if current thread is not a JavaThread
// or if it is a JavaThread that can safely access oops.
oop thread_obj = threadObj();
if (thread_obj != nullptr) {
if (java_lang_Thread::is_daemon(thread_obj)) st->print(" daemon");
st->print(java_lang_Thread::is_daemon(thread_obj) ? " daemon" : " ");
}
}
st->print(" [");
@ -1528,8 +1529,9 @@ void JavaThread::print_on_error(outputStream* st, char *buf, int buflen) const {
if (osthread()) {
st->print(", id=%d", osthread()->thread_id());
}
st->print(", stack(" PTR_FORMAT "," PTR_FORMAT ")",
p2i(stack_end()), p2i(stack_base()));
st->print(", stack(" PTR_FORMAT "," PTR_FORMAT ") (" PROPERFMT ")",
p2i(stack_end()), p2i(stack_base()),
PROPERFMTARGS(stack_size()));
st->print("]");
ThreadsSMRSupport::print_info_on(this, st);