This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
throw c++ exceptions from signal handler and -fnon-call-exceptions
- From: "Chen, Miaobo" <miaobo dot chen at intel dot com>
- To: <java at gcc dot gnu dot org>
- Date: Mon, 12 Jun 2006 10:02:23 +0800
- Subject: throw c++ exceptions from signal handler and -fnon-call-exceptions
Hi all,
I saw an example in libjava/include/i386_signal.h, in macro
MAKE_THROW_FRAME, upon trapping instructions we advance eip by 2 and
throw C++ exceptions from signal handler. My question is:
Why we advance eip by a fixed value 2 here? Does this work for any
trapping instructions for invalid memory access on ia32? I tested with:
__asm__ ("movl $0x4,0xffffffe8(%eax)"); //suppose eax=0 for invalid
memory access
which is a 7 bytes instruction but looks it does not work anymore,
neither did when advancing eip by 2 or 7.
Thanks a lot
Miaobo