< prev index next >
src/hotspot/share/code/exceptionHandlerTable.cpp
Print this page
rev 54883 : 8213084: Rework and enhance Print[Opto]Assembly output
Reviewed-by:
@@ -1,7 +1,7 @@
/*
- * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
@@ -183,14 +183,28 @@
return *(adr(i)+1);
return 0; // Failed to find any execption offset
}
void ImplicitExceptionTable::print(address base) const {
+ const uint n = len();
+ if (n > 0) {
+ const uint items_per_line = 3;
+ uint i;
+ tty->print_cr("ImplicitExceptionTable (size = %d entries, %d bytes):", n, size_in_bytes());
tty->print("{");
- for( uint i=0; i<len(); i++ )
+ for (i = 0; i < n; i++) {
+ if (i%items_per_line == 0) {
+ tty->cr();
+ tty->fill_to(3);
+ }
tty->print("< " INTPTR_FORMAT ", " INTPTR_FORMAT " > ", p2i(base + *adr(i)), p2i(base + *(adr(i)+1)));
+ }
+ tty->bol();
tty->print_cr("}");
+ } else {
+ tty->print_cr("ImplicitExceptionTable is empty");
+ }
}
ImplicitExceptionTable::ImplicitExceptionTable(const nmethod* nm) {
if (nm->nul_chk_table_size() == 0) {
_len = 0;
< prev index next >