__register_frame_* in libc and libstdc++. Okay?
Hi,
I am trying to track down why I am getting uncaught exceptions in some
C++ code. I'm no expert in object level stuff, so this may be off
base, but is the following okay:
bviren@minos:bviren> objdump --dynamic-sym /lib/libc.so.6 | grep _frame
001142d0 l d .eh_frame 00000000
000f6b94 g DF .text 00000037 GLIBC_2.0 __register_frame
000f8be4 g DF .text 00000073 GLIBC_2.0 __frame_state_for
000f6c80 g DF .text 00000032 GLIBC_2.0 __register_frame_table
000f6ae0 g DF .text 0000008a GCC_3.0 __register_frame_info_bases
000f6da8 g DF .text 00000023 GLIBC_2.0 __deregister_frame_info
000f6cb4 g DF .text 000000f4 GCC_3.0 __deregister_frame_info_bases
000f6bcc g DF .text 00000089 GCC_3.0 __register_frame_info_table_bases
000f6dcc g DF .text 00000032 GLIBC_2.0 __deregister_frame
000f6c58 g DF .text 00000027 GLIBC_2.0 __register_frame_info_table
000f6b6c g DF .text 00000027 GLIBC_2.0 __register_frame_info
bviren@minos:bviren> objdump --dynamic-sym /usr/lib/libstdc++-libc6.2-2.so.3 | grep _frame
0003707c l d .eh_frame 00000000
00033160 g DF .text 00000032 Base __register_frame
00033324 g DF .text 0000017b Base __frame_state_for
00033210 g DF .text 00000032 Base __register_frame_table
00033244 g DF .text 000000b4 Base __deregister_frame_info
000332f8 g DF .text 0000002c Base __deregister_frame
00033194 g DF .text 00000079 Base __register_frame_info_table
000330e0 g DF .text 0000007d Base __register_frame_info
As I understand things, this is where stack unwinding and exception
handling is done. If there are two different version linked in, could
this be a source of my uncaught exceptions?
This is on a sarge/sid x86 system using latest GCC 2.95 and libc6
2.2.5-13.
-Brett.
PS: please CC: me as I'm not on the list (hope thats okay).
Reply to: