< prev index next >
src/hotspot/share/asm/codeBuffer.cpp
Print this page
rev 53847 : 8219214: Infinite Loop in CodeSection::dump()
Reviewed-by:
*** 1,7 ****
/*
! * Copyright (c) 1997, 2018, 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.
--- 1,7 ----
/*
! * Copyright (c) 1997, 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.
*** 1028,1051 ****
}
#ifndef PRODUCT
void CodeSection::dump() {
! address ptr = start();
! for (csize_t step; ptr < end(); ptr += step) {
! step = end() - ptr;
! if (step > jintSize * 4) step = jintSize * 4;
! tty->print(INTPTR_FORMAT ": ", p2i(ptr));
! while (step > 0) {
tty->print(" " PTR32_FORMAT, *(jint*)ptr);
! ptr += jintSize;
}
tty->cr();
}
}
-
void CodeSection::decode() {
Disassembler::decode(start(), end());
}
--- 1028,1053 ----
}
#ifndef PRODUCT
void CodeSection::dump() {
! address limit = end();
! csize_t bytes_per_blk = jintSize;
! csize_t bytes_per_line = 4*bytes_per_blk;
!
! for (address ptr = start(); ptr < limit; ) {
! csize_t bytes_to_print = (limit - ptr) < bytes_per_line ? (limit - ptr) : bytes_per_line;
! tty->print(INTPTR_FORMAT ":", p2i(ptr));
! while (bytes_to_print >= bytes_per_blk) { // don't access data beyond end of range.
tty->print(" " PTR32_FORMAT, *(jint*)ptr);
! ptr += bytes_per_blk;
! bytes_to_print -= bytes_per_blk;
}
tty->cr();
}
}
void CodeSection::decode() {
Disassembler::decode(start(), end());
}
< prev index next >