Linux 上の G++ では、静的コンストラクターとデストラクターの順序は、.ctors セクションと .dtors セクションの関数ポインターによって決定されます。十分なデバッグが利用可能であれば、実際にバックトレースを取得できることに注意してください。
(gdb) bt
#0 0xb7fe3402 in __kernel_vsyscall ()
#1 0xb7d59680 in *__GI_raise (sig=6)
at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2 0xb7d5cd68 in *__GI_abort () at abort.c:88
#3 0x08048477 in foo::foo() ()
#4 0x0804844e in __static_initialization_and_destruction_0(int, int) ()
#5 0x0804846a in global constructors keyed to foo_inst ()
#6 0x0804850d in __do_global_ctors_aux ()
#7 0x08048318 in _init ()
#8 0x080484a9 in __libc_csu_init ()
#9 0xb7d4470c in __libc_start_main (main=0x8048414 <main>, argc=1,
ubp_av=0xbfffcbc4, init=0x8048490 <__libc_csu_init>,
fini=0x8048480 <__libc_csu_fini>, rtld_fini=0xb7ff2820 <_dl_fini>,
stack_end=0xbfffcbbc) at libc-start.c:181
#10 0x08048381 in _start () at ../sysdeps/i386/elf/start.S:119
これには、libc および libstdc++ のデバッグ シンボルがインストールされています。ご覧のとおり、ここでのクラッシュは、静的オブジェクト foo_inst の foo::foo() コンストラクターで発生しました。
初期化プロセスを中断したい場合は、__do_global_ctors_aux にブレークポイントを設定して、その分解をステップ実行できます。または、クラッシュするのを待って、上記のようなバックトレースを取得します。