core dump - signal 9

Hi All,

When I ran a multithreaded program in c++, it was core dumped
when its core was analysed

it indicated that the program was terminated with signal 9.
Signal 9 cannot be caught or interrupted.

When i analyzed the core further, it showed SING error
what could be the reason for this core dump.

I would like to add one more information that the program which i ran is one of the reliable program, it had almost run without any flaw for months together, i would like to know how a signal 9 would be generated by the system to abort the program

any help would be greatly appreciated.
Thanks

Is this a program that uses math? I googled "error SING Unix C" and got this.

Hope this helps.

Even i was wondering how could a SING error be triggerred when math functions are nowhere used in the program.

Are SING and DOMAIN errors created only for math functional errors?
or for the following error types also...

to name a few ...
1)unexpected buffer run
2)unexpected multi-threaded lock
3)unexpected corruption of program's internal state

thanks for the reply.

I dont know what could be the reason...

If you compile without stripping, (usually no -s)
then try:

nm <filename>

It will list all of the modules linked into the file. You will probably find some math runtime calls.

SING only occurs on math errors.

I don't understand how a core dump can claim that a process was terminated by signal 9. Where I come from , signal 9 is not catchable and does not dump core.

I'm sure it bombed on something else - you're right SIGKILL does just that.
Maybe the signal handler caught something else and decided to die.

Yes Perderabo, I too had the same doubt of how a core can be generated when signal 9 is sent.

When analyzed further found that, it could be due to the following reason also,

when any other signal (other than sigkill) is sent to the process and the signal handler fails to handle the signal for that process, system level signal 9 is sent to the process with a core being dumped. Hence the core revealed it as being generated by signal 9.(no user defined functions are registered with the signals in the process)

Any thoughts on this would be helpful. Thanks.