help-gplusplus
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Exception unwinding problem


From: kostadis
Subject: Exception unwinding problem
Date: 8 Aug 2004 12:53:36 -0700

Hi!

I wrote the following snippet of code

int main()
{
        try {
                throw (5);
        } catch(...) {

        }
};

I compiled it with:

> /usr/local/build/compilers/gcc-3.3/bin/g++ --verbose -g 
> -fexceptions excepttext.cc Reading specs from 
> /usr/local/build/compilers/gcc-3.3/lib/gcc-lib/i686-pc-linux-g
> nu/3.3/specs
> Configured with: ../gcc-3.3/configure 
> --enable-languages=c,c++ --prefix=/usr/local/build/compilers/gcc-3.3
> Thread model: posix
> gcc version 3.3  
> /usr/local/build/compilers/gcc-3.3/lib/gcc-lib/i686-pc-linux-g
> nu/3.3/cc1plus -quiet -v -D__GNUC__=3 -D__GNUC_MINOR__=3 
> -D__GNUC_PATCHLEVEL__=0 -D_GNU_SOURCE excepttext.cc 
> -D__GNUG__=3 -quiet -dumpbase excepttext.cc -auxbase 
> excepttext -g -version -fexceptions -o /tmp/cc7uEk6K.s GNU 
> C++ version 3.3 (i686-pc-linux-gnu)
>         compiled by GNU C version 2.95.1g 19990816 (change
> 108897). GGC heuristics: --param ggc-min-expand=99 --param 
> ggc-min-heapsize=129236 ignoring nonexistent directory 
> "/usr/local/build/compilers/gcc-3.3/i686-pc-linux-gnu/include"
> #include "..." search starts here:
> #include <...> search starts here:  
> /usr/local/build/compilers/gcc-3.3/include/c++/3.3
>  /usr/local/build/compilers/gcc-3.3/include/c++/3.3/i686-pc-linux-gnu
>  /usr/local/build/compilers/gcc-3.3/include/c++/3.3/backward
>  /usr/local/include
>  /usr/local/build/compilers/gcc-3.3/include
>  
> /usr/local/build/compilers/gcc-3.3/lib/gcc-lib/i686-pc-linux-g
> nu/3.3/include
>  /usr/include
> End of search list.
> /usr/local/build/compilers/gcc-3.3/lib/gcc-lib/i686-pc-linux-g
> nu/3.3/../../../../i686-pc-linux-gnu/bin/as -V -Qy -o 
> /tmp/ccmTRn0q.o /tmp/cc7uEk6K.s GNU assembler version 2.14 
> (i686-pc-linux-gnu) using BFD version 2.14 20030612  
> /usr/local/build/compilers/gcc-3.3/lib/gcc-lib/i686-pc-linux-g
> nu/3.3/collect2 --eh-frame-hdr -m elf_i386 -dynamic-linker 
> /lib/ld-linux.so.2 /usr/lib/crt1.o /usr/lib/crti.o 
> /usr/local/build/compilers/gcc-3.3/lib/gcc-lib/i686-pc-linux-g
> nu/3.3/crtbegin.o 
> -L/usr/local/build/compilers/gcc-3.3/lib/gcc-lib/i686-pc-linux
> -gnu/3.3 
> -L/usr/local/build/compilers/gcc-3.3/lib/gcc-lib/i686-pc-linux
> -gnu/3.3/../../../../i686-pc-linux-gnu/lib 
> -L/usr/local/build/compilers/gcc-3.3/lib/gcc-lib/i686-pc-linux
> -gnu/3.3/../../.. /tmp/ccmTRn0q.o -lstdc++ -lm -lgcc_s -lgcc 
> -lc -lgcc_s -lgcc 
> /usr/local/build/compilers/gcc-3.3/lib/gcc-lib/i686-pc-linux-g
> nu/3.3/crtend.o /usr/lib/crtn.o
> 
> And with gcc3.3.1
> 
> bryant [479] (0) %
> /usr/local/build/compilers/gcc-3.3.1/bin/g++ --verbose -g 
> -fexceptions excepttext.cc Reading specs from 
> /usr/local/build/compilers/gcc-3.3.1/bin/../lib/gcc-lib/i686-p
> c-linux-gnu/3.3.1/specs
> Configured with: ../gcc-3.3.1/configure 
> --enable-languages=c,c++,f77,java,objc,treelang 
> --prefix=/usr/local/build/compilers/gcc-3.3.1_277537
> Thread model: posix
> gcc version 3.3.1 ($Change: 277537 $)  
> /usr/local/build/compilers/gcc-3.3.1/bin/../lib/gcc-lib/i686-p
> c-linux-gnu/3.3.1/cc1plus -quiet -v -iprefix 
> /usr/local/build/compilers/gcc-3.3.1/bin/../lib/gcc-lib/i686-p
> c-linux-gnu/3.3.1/ -D__GNUC__=3 -D__GNUC_MINOR__=3 
> -D__GNUC_PATCHLEVEL__=1 -D_GNU_SOURCE excepttext.cc 
> -D__GNUG__=3 -quiet -dumpbase excepttext.cc -auxbase 
> excepttext -g -version -fexceptions -o /tmp/ccmOc8tY.s GNU 
> C++ version 3.3.1 ($Change: 277537 $) (i686-pc-linux-gnu)
>         compiled by GNU C version 3.3.1 ($Change: 277537 $).
> GGC heuristics: --param ggc-min-expand=99 --param 
> ggc-min-heapsize=129236 ignoring nonexistent directory 
> "/usr/local/build/compilers/gcc-3.3.1/i686-pc-linux-gnu/include"
> ignoring nonexistent directory 
> "/usr/local/build/compilers/gcc-3.3.1_277537/i686-pc-linux-gnu
> /include"
> ignoring duplicate directory 
> "/usr/local/build/compilers/gcc-3.3.1_277537/include/c++/3.3.1"
> ignoring duplicate directory 
> "/usr/local/build/compilers/gcc-3.3.1_277537/include/c++/3.3.1
> /i686-pc-linux-gnu"
> ignoring duplicate directory 
> "/usr/local/build/compilers/gcc-3.3.1_277537/include/c++/3.3.1
> /backward"
> ignoring duplicate directory 
> "/usr/local/build/compilers/gcc-3.3.1_277537/lib/gcc-lib/i686-
> pc-linux-gnu/3.3.1/include"
> #include "..." search starts here:
> #include <...> search starts here:  
> /usr/local/build/compilers/gcc-3.3.1/include/c++/3.3.1
>  
> /usr/local/build/compilers/gcc-3.3.1/include/c++/3.3.1/i686-pc
> -linux-gnu  
> /usr/local/build/compilers/gcc-3.3.1/include/c++/3.3.1/backward
>  
> /usr/local/build/compilers/gcc-3.3.1/lib/gcc-lib/i686-pc-linux
> -gnu/3.3.1/include
>  /usr/local/include
> /usr/local/build/compilers/gcc-3.3.1_277537/include
>  /usr/include
> End of search list.  
> /usr/local/build/compilers/gcc-3.3.1/bin/../lib/gcc-lib/i686-p
> c-linux-gnu/3.3.1/../../../../i686-pc-linux-gnu/bin/as -V -Qy 
> -o /tmp/ccfskUfq.o /tmp/ccmOc8tY.s GNU assembler version 2.14 
> (i686-pc-linux-gnu) using BFD version 2.14 20030612 ($Change: 
> 277520 $)  
> /usr/local/build/compilers/gcc-3.3.1/bin/../lib/gcc-lib/i686-p
> c-linux-gnu/3.3.1/collect2 --eh-frame-hdr -m elf_i386 
> -dynamic-linker /lib/ld-linux.so.2 /usr/lib/crt1.o 
> /usr/lib/crti.o 
> /usr/local/build/compilers/gcc-3.3.1/bin/../lib/gcc-lib/i686-p
> c-linux-gnu/3.3.1/crtbegin.o 
> -L/usr/local/build/compilers/gcc-3.3.1/bin/../lib/gcc-lib/i686
> -pc-linux-gnu/3.3.1 
> -L/usr/local/build/compilers/gcc-3.3.1/bin/../lib/gcc-lib 
> -L/usr/local/build/compilers/gcc-3.3.1_277537/lib/gcc-lib/i686
> -pc-linux-gnu/3.3.1 
> -L/usr/local/build/compilers/gcc-3.3.1/bin/../lib/gcc-lib/i686
> -pc-linux-gnu/3.3.1/../../../../i686-pc-linux-gnu/lib 
> -L/usr/local/build/compilers/gcc-3.3.1_277537/lib/gcc-lib/i686
> -pc-linux-gnu/3.3.1/../../../../i686-pc-linux-gnu/lib 
> -L/usr/local/build/compilers/gcc-3.3.1/bin/../lib/gcc-lib/i686
> -pc-linux-gnu/3.3.1/../../.. 
> -L/usr/local/build/compilers/gcc-3.3.1_277537/lib/gcc-lib/i686
> -pc-linux-gnu/3.3.1/../../.. /tmp/ccfskUfq.o -lstdc++ -lm 
> -lgcc_s -lgcc -lc -lgcc_s -lgcc 
> /usr/local/build/compilers/gcc-3.3.1/bin/../lib/gcc-lib/i686-p
> c-linux-gnu/3.3.1/crtend.o /usr/lib/crtn.o
> bryant [480] (0) %                
> 
> And the linux variant
> 
> Linux bryant.eng.netapp.com 2.4.19 #2 SMP Mon Dec 16 16:06:28
> PST 2002 i686 i686 i386 GNU/Linux


Whenever I run the program it aborts. The stack trace in gdb6.x
he stack trace is:
(gdb) where
#0  0x42028cc1 in kill () from /lib/i686/libc.so.6
#1  0x42028ac8 in raise () from /lib/i686/libc.so.6
#2  0x4202a019 in abort () from /lib/i686/libc.so.6
#3  0x400bbfb7 in __cxxabiv1::__terminate(void (*)())
(handler=0x42029e80 <abort>) at
../../../../libstdc++-v3/libsupc++/eh_terminate.cc:47
#4  0x400bc004 in std::terminate() () at
../../../../libstdc++-v3/libsupc++/eh_terminate.cc:57
#5  0x400bc176 in __cxa_throw (obj=0x8049988, tinfo=0x0, dest=0) at
../../../../libstdc++-v3/libsupc++/eh_throw.cc:77
#6  0x0804869e in main () at excepttext.cc:5
#7  0x420158d4 in __libc_start_main () from /lib/i686/libc.so.6
(gdb)

I suspect that there is an error in my setup, but need help to
debug it.

thanks,
kostadis


reply via email to

[Prev in Thread] Current Thread [Next in Thread]