8258751: Improve ExceptionHandlerTable dump
Reviewed-by: thartmann, chagedorn, njian
This commit is contained in:
parent
dd8996c5f5
commit
17d1645ece
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1998, 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1998, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -120,22 +120,32 @@ HandlerTableEntry* ExceptionHandlerTable::entry_for(int catch_pco, int handler_b
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void ExceptionHandlerTable::print_subtable(HandlerTableEntry* t) const {
|
void ExceptionHandlerTable::print_subtable(HandlerTableEntry* t, address base) const {
|
||||||
int l = t->len();
|
int l = t->len();
|
||||||
|
bool have_base_addr = (base != NULL);
|
||||||
|
if (have_base_addr) {
|
||||||
|
tty->print_cr("catch_pco = %d (pc=" INTPTR_FORMAT ", %d entries)", t->pco(), p2i(base + t->pco()), l);
|
||||||
|
} else {
|
||||||
tty->print_cr("catch_pco = %d (%d entries)", t->pco(), l);
|
tty->print_cr("catch_pco = %d (%d entries)", t->pco(), l);
|
||||||
|
}
|
||||||
while (l-- > 0) {
|
while (l-- > 0) {
|
||||||
t++;
|
t++;
|
||||||
|
if (have_base_addr) {
|
||||||
|
tty->print_cr(" bci %d at scope depth %d -> pco %d (pc=" INTPTR_FORMAT ")",
|
||||||
|
t->bci(), t->scope_depth(), t->pco(), p2i(base + t->pco()));
|
||||||
|
} else {
|
||||||
tty->print_cr(" bci %d at scope depth %d -> pco %d", t->bci(), t->scope_depth(), t->pco());
|
tty->print_cr(" bci %d at scope depth %d -> pco %d", t->bci(), t->scope_depth(), t->pco());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void ExceptionHandlerTable::print() const {
|
void ExceptionHandlerTable::print(address base) const {
|
||||||
tty->print_cr("ExceptionHandlerTable (size = %d bytes)", size_in_bytes());
|
tty->print_cr("ExceptionHandlerTable (size = %d bytes)", size_in_bytes());
|
||||||
int i = 0;
|
int i = 0;
|
||||||
while (i < _length) {
|
while (i < _length) {
|
||||||
HandlerTableEntry* t = _table + i;
|
HandlerTableEntry* t = _table + i;
|
||||||
print_subtable(t);
|
print_subtable(t, base);
|
||||||
// advance to next subtable
|
// advance to next subtable
|
||||||
i += t->len() + 1; // +1 for header
|
i += t->len() + 1; // +1 for header
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1998, 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1998, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -123,8 +123,8 @@ class ExceptionHandlerTable {
|
|||||||
HandlerTableEntry* entry_for(int catch_pco, int handler_bci, int scope_depth) const;
|
HandlerTableEntry* entry_for(int catch_pco, int handler_bci, int scope_depth) const;
|
||||||
|
|
||||||
// debugging
|
// debugging
|
||||||
void print_subtable(HandlerTableEntry* t) const;
|
void print_subtable(HandlerTableEntry* t, address base = NULL) const;
|
||||||
void print() const;
|
void print(address base = NULL) const;
|
||||||
void print_subtable_for(int catch_pco) const;
|
void print_subtable_for(int catch_pco) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -2700,7 +2700,7 @@ void nmethod::print_native_invokers() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void nmethod::print_handler_table() {
|
void nmethod::print_handler_table() {
|
||||||
ExceptionHandlerTable(this).print();
|
ExceptionHandlerTable(this).print(code_begin());
|
||||||
}
|
}
|
||||||
|
|
||||||
void nmethod::print_nul_chk_table() {
|
void nmethod::print_nul_chk_table() {
|
||||||
|
Loading…
Reference in New Issue
Block a user