RFR: 8272586: emit abstract machine code in hs-err logs
Vladimir Kozlov
kvn at openjdk.java.net
Wed Oct 6 15:45:08 UTC 2021
On Thu, 9 Sep 2021 16:56:57 GMT, Doug Simon <dnsimon at openjdk.org> wrote:
> This enhances hs-err logs to:
> * Show the [abstract machine code](https://bugs.openjdk.java.net/browse/JDK-8213084) of the crashing frame if a disassembler is not installed.
> * Show machine code for the top frames on the native stack.
>
> An interpreter or stub frame is only shown if it is the crashing frame.
>
> A sample of the enhanced hs-err log can be seen [here](https://bugs.openjdk.java.net/secure/attachment/96664/hs_err_pid7179.log).
Look good in general. I have few small comments.
src/hotspot/share/utilities/vmError.cpp line 247:
> 245: * Determines if the code unit denoted by `owner` should be printed.
> 246: * If this method returns true, then `owner` has been added to `printed`.
> 247: * If `owner` was already in `printed`, this methods returns false.
Is it because of recursive calls?
src/hotspot/share/utilities/vmError.cpp line 324:
> 322: // non-walkable C frame. Use frame.sender() for java frames.
> 323: frame invalid;
> 324: if (t && t->is_Java_thread()) {
use `(t != nullptr)` explicitly
src/hotspot/share/utilities/vmError.cpp line 363:
> 361: st->cr();
> 362: fr = next_frame(fr, t);
> 363: if (!fr.pc()) {
Please use `== nullptr`
src/hotspot/share/utilities/vmError.cpp line 918:
> 916:
> 917: frame fr = os::fetch_frame_from_context(_context);
> 918: for (int count = 0; count < printed_len && fr.pc(); ) {
Use `(fr.pc() != nullptr)`
-------------
PR: https://git.openjdk.java.net/jdk/pull/5446
More information about the hotspot-dev
mailing list