This is the mail archive of the
cygwin@sourceware.cygnus.com
mailing list for the Cygwin project.
RE: b18: cygwin_except_handler failure on deref NULL
- To: dahms at ifk20 dot mach dot uni-karlsruhe dot de
- Subject: RE: b18: cygwin_except_handler failure on deref NULL
- From: Steven Pemberton <Steven dot Pemberton at cwi dot nl>
- Date: Tue, 16 Sep 1997 12:43:36 +0200 (MET DST)
- Cc: gnu-win32 at cygnus dot com
- References: <009B9C5E.173D3DA0.22545@ifk20.mach.uni-karlsruhe.de>
> Hi Steven, you wrote:
>
> : (ENQUIRE.EXE 1011) In cygwin_except_handler
>
> : It failed at the point where the program looks to see if dereferencing
> : NULL causes a trap (which is done using setjmp, and dereferencing NULL).
>
> I think it worked, because cygwin_except_handler *is* the trap handler!
> Do you have an complete example in a dozen of source lines or so?
My guess is that this would cause the same fault (but I don't have a
PC to hand):
#include <stdio.h>
#include <signal.h>
#include <setjmp.h>
jmp_buf mlab; int v, *p;
void address(sig) int sig; { /* what to do on an address error */
signal(sig, address);
longjmp(mlab, 1);
}
main() {
#ifdef SIGBUS
signal(SIGBUS, address);
#endif
#ifdef SIGSEGV
signal(SIGSEGV, address);
#endif
if (setjmp(mlab) == 0) {
p= 0;
v= *p;
printf("Dereferencing NULL doesn't cause a trap\n");
} else {
printf("Dereferencing NULL causes a trap\n");
}
}
Best wishes,
Steven Pemberton
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".