[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
- Exception unwinding problem,
kostadis <=