Project to improve hs_err files
Volker Simonis
volker.simonis at gmail.com
Wed Feb 12 10:03:51 PST 2014
On Wed, Feb 12, 2014 at 6:30 PM, Nils Eliasson <nils.eliasson at oracle.com> wrote:
>
>
> On 2014-02-12 15:28, Volker Simonis wrote:
>>
>> On Wed, Feb 12, 2014 at 2:14 PM, Nils Eliasson <nils.eliasson at oracle.com>
>> wrote:
>>>
>>> On 2013-09-06 13:32, Mattis Castegren wrote:
>>>
>>> ...
>>>
>>>
>>> * Additional Data
>>>
>>> ...
>>>
>>>
>>> Make sure we read the OS-context when hitting asserts in debug-builds.
>>> Today
>>> we only get registers, code and stack on actual crashes. Very valuable
>>> info
>>> that is missing when investigating many test failures.
>>>
>> I'm afraid that will be not possible. For a crash (i.e. because of a
>> SIGSEGV) the kernel saves the context for the PC which caused the
>> problem. 'assert' and 'guarantee' are macros which evaluate an
>> expression and call report_vm_error if that expression was 'false'. I
>> think the best we could do is to call 'getcontext()' after the
>> evaluation of the expression, but that's not actually the context
>> where the evaluation of the expression failed. But I agree that it may
>> be helpful as well.
>
>
> getContext() works at least for some platforms. An alternative is to a force
> crash and let the crash handler do the works as usual. It has been done and
> worked pretty well.
>
This is a good idea, but it may interfer with -XX:SuppressErrorAt. We
currently only check if we should ignore an assertion in
report_vm_error(). If we would crash before (i.e. right after the
evaluation of the expression), -XX:SuppressErrorAt would be useless.
On the other side, if w only crash in report_vm_error(), we would get
the context in that functions which would not contain the desired
register values in the frame which crashed either. So we'd probably
have to think how this could be implemented in the best way.
>
>
>> And you should already get a complete stack trace for 'asserts' and
>> 'guarantees' with the current implementation. Don't you see it?
>
>
> I get a stacktrace but no raw stack from the current frame.
>
> Regards,
> Nilx
>
>
>>
>> Regards,
>> Volker
>>
>>> //Nils
>
>
More information about the serviceability-dev
mailing list