asserts in jdk coding (outside hotspot)

David Holmes david.holmes at oracle.com
Thu Jun 1 12:09:41 UTC 2017


Hi Thomas,

On 1/06/2017 7:20 PM, Thomas Stüfe wrote:
> Hi all,
> 
> so, we have the hotspot asserts with all the niceties of our error
> reporting. But these asserts are only accessible from within hotspot coding.
> 
> In the JDK, in a number of places, I see that we use the standard posix
> assert()(
> http://pubs.opengroup.org/onlinepubs/009695399/functions/assert.html).
> 
> This means that when we trigger the assert, we will only get a brief
> message on stderr and a core, but no hs_err file.
> 
> It also means that -XX:+CreateCoredumpOnCrash is ignored, so it is not
> possible to switch off those core dumps.
> 
> This is unfortunate and also easy to fix. We do not even have to call into
> the hotspot to get hotspot asserts. We could just force a NULL pointer
> access or send ourselves a SIGILL or something. Anything which triggers the
> hotspot signal handling would be fine.
> 
> What do you think?

Sending ourselves a fatal signal doesn't indicate what assertion failed. 
The error handler won't know it was an assert, just a SEGV or SIGILL

??

David

> Kind Regards, Thomas
> 


More information about the core-libs-dev mailing list