Hi,
        A program I wrote used a signal handler for SIGSEGV. I originally compiled it 
without any extra flags. When any instruction in the program seg. faulted, it would 
get a large no. of Segmentation fault signals (I checked with strace and ltrace), and 
the program would exit. The same program, if compiled with optimization flags (-O2) 
would work as expected. I tried compiling with both gcc and egcs under RH5.2 and egcs 
in RH6.1. The program fragment is given below

jmp_buf env;

void seg_catch()
{
        printf("<Seg. fault>\n");
        longjmp(env, 1);
}
main()
{
        ......  /* Setup handlers etc. */
        ......
        if (setjmp(env) == 0) {
                ....
                <seg. faulting statements>
        } else {
                ....
        }
}

--------------------------------------------------------------------
The Linux India Mailing List Archives are now available.  Please search
the archive at http://lists.linux-india.org/ before posting your question
to avoid repetition and save bandwidth.

Reply via email to