I am finding that Objective-C exceptions are not being caught when my
GNUstep-built DLL is run as an in-memory COM server within a protected
memory space, such as (a) Excel and (b) GDB.
I have tracked the problem down to signal handlers not being called.
Could this be the reason that exceptions are not being handled?
For example, consider the following program that generates a SIGSEGV crash.
--
#include <signal.h>
#include <stdio.h>
void recover(int);
int main(int argc, const char *argv[])
{
signal(SIGSEGV, recover);
int *intPtr = 0;
printf("Crash %d", *intPtr);
return 0;
}
void recover(int signal)
{
int value = signal;
printf("Signal generated: %d\n", value);
}
--
When running from the command line, the signal handler function,
recover(), is called as expected:
> Tool
Signal generated: 11
>
However, the problem shows up when the program is run within GDB: the
signal handler is not called. Any ideas about this and its possible
ramification for proper exception handling when running the DLL as an
in-process COM server?
_______________________________________________
Discuss-gnustep mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnustep