[kaffe] assertion failed, !INTS_DISABLED()

Godmar Back gback at cs.utah.edu
Thu Sep 12 13:16:46 PDT 2002

This assertion failure basically means that you've segfaulted,
for whatever reason.

Since Kaffe implements NullPointerExceptions in hardware, a segfault
(specifically, a SIGSEGV signal) is normally converted into a NPE.
This, however, makes only sense when the reason for the SIGSEGV
was that a (Java) null reference was accessed, or attempted to.

If the reason for the SIGSEGV was anything else, then kaffe crashed
(in a way it shouldn't.)  We do not detect reliably when the former
and when the latter case occurs: however, what we do know is that the
former case cannot occur in sections of code in which interrupts
are disabled.

Hence the assertion: if we get a SIGSEGV while interrupts are disabled,
we do not turn it into a NPE, but recognize we have a real crash on
our hands and abort for post-mortem inspection instead.

Somebody should look into one of the new-fangled reporting systems
that, when enabled, automatically send a bug report to someone (whom?)
with the crash data.  IE has had one for years.  Mozilla has one,
too (which I personally don't use, because mozilla crashes so often...),
so maybe there's some free or open source software out there(?)

	- Godmar

> Oddly enough, I used to get that error on the MIPS port
> as a result of a screwed-up stack frame definition.  In my
> case, it didn't take long for it to turn up - it happened on
> a large number of the regression tests.
> In the context of x86, I think this observation just serves
> to underscore what Godmar was saying - that this assert
> failure seems to be easily triggered by memory (particularly
> stack frame) corruption problems that have nothing to do
> with the jthreads "interrupt" machinery.
>             Kevin K.
> _______________________________________________
> kaffe mailing list
> kaffe at kaffe.org
> http://kaffe.org/cgi-bin/mailman/listinfo/kaffe

More information about the kaffe mailing list