RFR: 8274986: max code printed in hs-err logs should be configurable [v4]
David Holmes
dholmes at openjdk.java.net
Tue Oct 12 08:00:50 UTC 2021
On Tue, 12 Oct 2021 07:34:22 GMT, Doug Simon <dnsimon at openjdk.org> wrote:
>> This PR adds a `ErrorLogPrintCodeLimit` (develop) option for configuring the amount of code printed in a hs-err log file. There's a hard limit of 10 so that the buffer used to avoid duplicates in `VMError::print_code` is stack allocated.
>> In addition, the Java stack is also scanned when considering code to print as the native stack may not have any Java compiled frames. For example, a transition into the VM through a RuntimeStub can prevent the native stack walk from seeing the frames above the stub.
>> The MachCodeFramesInErrorFile test has been made more robust in terms of validating its expectations of how C2 intrinsifies methods.
>>
>> There's one other minor change to address [this comment](https://github.com/openjdk/jdk/pull/5446#issuecomment-938518814).
>
> Doug Simon has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains four commits:
>
> - print extra info for an nmethod in CodeBlob::dump_for_addr to st instead of tty in non-verbose mode
> - made ErrorLogPrintCodeLimit a diagnostic flag
> - make max code printed in hs-err log configurable and also scan Java stack for code to print
> - do not unnecessarily pollute tty
Hi Doug,
A couple of minor comments/queries but otherwise this seems okay.
Thanks,
David
src/hotspot/share/runtime/flags/jvmFlagLimit.cpp line 37:
> 35: #include "oops/markWord.hpp"
> 36: #include "runtime/task.hpp"
> 37: #include "utilities/vmError.hpp"
Why is this needed?
src/hotspot/share/utilities/vmError.cpp line 920:
> 918: // Even though ErrorLogPrintCodeLimit is ranged checked
> 919: // during argument parsing, there's no way to prevent it
> 920: // being set to a value outside the range.
I don't understand what you mean here. Do we not abort the VM if the flag value is out-of-range?
src/hotspot/share/utilities/vmError.cpp line 925:
> 923: // Scan the native stack
> 924: if (!_print_native_stack_used) {
> 925: // Only try print code of the crashing frame since
Existing typo: s/try/try to/
-------------
Marked as reviewed by dholmes (Reviewer).
PR: https://git.openjdk.java.net/jdk/pull/5875
More information about the hotspot-dev
mailing list