8205118: CodeStrings::copy() assertion caused by -XX:+VerifyOops -XX:+PrintStubCode
Aleksey Shipilev
shade at redhat.com
Mon Jun 18 17:07:19 UTC 2018
On 06/18/2018 07:02 PM, Andrew Haley wrote:
> My recent patch to re-enable the printing of code comments in
> PrintStubCode revealed a latent bug in CodeStrings::copy().
> VerifyOops uses CodeStrings to hold its assertion strings, and these
> are distinguished from code comments by an offset of -1. (Presumably
> to make sure they're not interpreted as code comments by the
> disassembler.) Unfortunately, CodeStrings::copy() triggers an
> assertion failure when it sees any of the assertion strings.
>
> The best fix, IMO, is to correct CodeStrings::copy(): it shouldn't
> fail whatever the code strings are.
>
> http://cr.openjdk.java.net/~aph/8205118-1/
This fix looks like a typo :)
Better make it explicit, e.g.
intptr_t offset() const { assert(_offset >= 0, "offset for non comment?"); return offset_raw(); }
intptr_t offset_raw() const { return _offset; }
...
*ps = new CodeString(n->string(),n->offset_raw());
-Aleksey
More information about the hotspot-dev
mailing list