Date: Fri, 18 Mar 2005 17:19:46 -0500
From: Aleksandar Donev <[log in to unmask]>
...
Now I try a SIGFPE:
...
And it works, a traceback is produced:
...
Now I try a SIGSEGV:
...
and it does not work:
TRYING SIGSEGV
Segmentation fault
I have observed weird behavior with signal handlers in other
situations, and I am not sure how much is the Fortran RTL, how much
the OS, and how much optimization. In any case, any help will be
greatly appreciated.
I'm afraid this is beyond my direct knowledge. I originally joined
the list because I had written a debugger for Digital's HPF, but now I
monitor this list to watch Fortran's trends. Every now and then a
topic comes up that I feel I have some knowledge about. My knowledge
of Linux and signal delivery says "Well, it seems it should work" but
you obviously see that it doesn't. If you are reasonably fluent with
a debugger (probably gdb), you could try running the program under it,
letting it take the SIGFPE, look at the stack, continue the program
with the signal so that it gets to the traceback routine. Perhaps
even put a breakpoint on the traceback routine as well as the line
that will produce the fault. I.e., try to trace the program's
behavior once the OS has delivered the signal. Then try the same with
the SIGSEGV. Hopefully there will be a clue as to why they are
behaving differently. Otherwise, I hope somebody else with more
direct experience and knowledge can help you.
I don't like cores much because they tend to be huge and clumsy to
work with.
I tend to agree, and its sad this is a lesser-of-evils situation.
Fixed on the Lisp Machine, where the debugger was always present...
And yes, back in the early 80's the Symbolics Fortran team claimed to
have a high-quality implementation of Fortran 77.
|