RFR: 8272586: emit abstract machine code in hs-err logs
Doug Simon
dnsimon at openjdk.java.net
Wed Oct 6 16:30:14 UTC 2021
On Wed, 6 Oct 2021 15:41:27 GMT, Vladimir Kozlov <kvn 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).
>
> 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?
Yes - no point in printing the same code more than once.
> 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
Will do.
BTW, I've never seen `nullptr` before - where is it defined?
-------------
PR: https://git.openjdk.java.net/jdk/pull/5446
More information about the hotspot-dev
mailing list