In the module fault.c, a panic handler is established to cause a core dump on fatal exceptions. This is the wrong thing to do on OpenVMS. On OpenVMS, unless overridden at link time, a traceback facility is enabled that gives the debugging information of where the fault occurred, including the source module name and line numbers of all routines on the stack. It also displays diagnostic information about the fault. If the SAMBA fault handler intercepts the signals, instead of getting this diagnostic information, all that that gets displayed is that the panic handler called exit from some unknown module. My sugestion is allow the configure process to add a macro to indicate that the host operating system traceback/panic handler should be used if it is defined as part of the configure process. Example: void fault_setup(void (*fn)(void *)) { #ifndef USE_HOST_PANIC_HANDLER cont_fn = fn; #ifdef SIGSEGV CatchSignal(SIGSEGV,SIGNAL_CAST sig_fault); #endif #ifdef SIGBUS CatchSignal(SIGBUS,SIGNAL_CAST sig_fault); #endif #ifdef SIGABRT CatchSignal(SIGABRT,SIGNAL_CAST sig_fault); #endif } #endif
If it's still broken in 3.5, please reopen. 3.0 isn't supported anymore.