ToDo:
まぁやっぱ libstdc++.dylib を読む方向性の方が良いかなぁ…とながめてみる。
まずどうもおかしいのが filesize がゼロの LC_SEGMENT があることで、 これはなんか xcode に入ってる libstdc++.dylib は 中身ないんだかなんだか知らんがそうなってるみたいだった。 というわけでとりあえず Mac から取ってきた。
で、 Mac から取ってきた方は初期化ルーチンのところでコケる。 スタックトレースがそれなりに深いけど意味わからんので、 Mach-O のシンボルテーブル使ってスタックトレースが出せるようにしたり。 なんか知らんけど gdb のスタックトレースってのは たいへん優秀で他より情報出がちなんで、 python から gdb いじる系のあれでほげほげしてみる。
結果
#0 0x7ffff79c7ed4 __pthread_mutex_lock #1 __gnu_cxx::__recursive_mutex::lock()(+9) [0x10004ce2d(4ae2d)] #2 0x7fffffffdbb0 None #3 __cxa_guard_acquire(+34) [0x10004cdcd(4adcd)] #4 0x7fffffffdd20 None #5 0x7ffff6eb9d00 None #6 0x7fffffffdc20 None #7 (anonymous namespace)::get_locale_mutex()(+32) [0x10000b702(9702)] #8 std::money_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::id(+8) [0x100088540(86540)] #9 std::locale::id::_S_refcount(+8) [0x100088438(86438)] #10 0x7ffff6ec6450 None #11 (anonymous namespace)::locale_cache_mutex(+40) [0x100088760(86760)] #12 vtable for std::basic_streambuf<char, std::char_traits<char> >(+10) [0x100083f90(81f90)] #13 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size() const(+62dc70) [0x62dc70(62dc70)] #14 __gnu_internal::buf_wcerr(+270) [0x100088410(86410)] #15 0x0 None
よくわからんところで死んでるということはわかった…
(06:11)
前 | 2011年 3月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。