This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]


On 7/22/2015 12:06 PM, Corinna Vinschen wrote:
On Jul 22 11:33, Eliot Moss wrote:
On 7/22/2015 11:14 AM, Corinna Vinschen wrote:

   NEW:  sigsetjmp and siglongjmp were only implemented as macros so far.
   POSIX requires functions longjmp and siglongjmp to exist.  2.2.0-0.2
   adds sigsetjmp and siglongjmp functions.

   2.2.0 comes with four new functions:  getcontext, setcontext,
   makecontext and swapcontext.

So I am wondering if signal handlers now have access to the full context,
including register values.  There was at one time a desire to port Jikes RVM,
a research Java Virtual Machine, to cygwin, to get it running under Windows.
Lack of ability to obtain and modify the ucontext in a signal handler was
the sticking point.  (It was needed in the case of, say, a null pointer
exception, to fake up the throwing of the Java exception when the signal
handler returns.)

The full ucontext is available to signal handlers since Cygwin 2.0.4 if
sigaction is called with the SA_SIGINFO flag set, courtesy of Jon
Turney's efforts.

New in 2.2.0 is only the matching implementation of the aforementioned

Please note that the ucontext_t and mcontext_t types are platform
specific.  The mcontext_t type reflects the Windows CONTEXT type more
than the Linux mcontext_t type.

For the ucontext_t type see /usr/include/sys/ucontext.h
For the mcontext_t type see /usr/include/cygwin/signal.h

Thanks!  Helpful to know!   Eliot

Problem reports:
Unsubscribe info:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]