RFR(M): 8210754: print_location is not reliable enough (printing register info)
Doerr, Martin
martin.doerr at sap.com
Tue Sep 25 16:52:55 UTC 2018
Hi Thomas,
thanks for the detailed review and looking again at my change.
Making the checks DEBUG_ONLY is indeed not a good idea. We want better hs_err files in product.
I'd like to wait for other opinions before doing large renaming or refactoring changes, ideally from Coleen if she can find some time.
But thanks for many small improvement proposals. I've changed the following things:
- Add null check in ClassLoaderDataGraph::is_valid.
- Removed inclusion of "memory/metaspace/virtualSpaceNode.hpp" from metaspace.hpp.
- Use a constant minimum_page_size = 4 * K for the is_readable_range check loop and to sort out NULL or small integer values for class or oop checks.
- Avoid bytewise iteration for range check loops.
- Removed some unnecessary uintptr casts.
- Removed is_range_in_committed_c_heap which was only used once (and the name was indeed misleading).
- Changed is_oop_nor_null to directly check for valid oop first.
- Overworked alignment checks (also using sizeof(MetaWord)).
- Added missing include.
- Added more verbose version for uncompressed klass pointer.
Please note that dump_code_blob is just factored out and I don't want to change it in the same changeset because that wouldn't be diffable.
Some of the functions may also be useful for debugging purposes, so they may be valuable as separate function though only used by one call site.
New webrev:
http://cr.openjdk.java.net/~mdoerr/8210754_print_location/webrev.01/
I will need to inject errors to retest this changed version.
Best regards,
Martin
More information about the hotspot-runtime-dev
mailing list