0

在我的应用程序中,我也使用了 C++/Boost 库。奇怪的是所有的崩溃日志都与 std::length_error() 相关。

谁能提供一些线索?欢迎任何评论。

124 Thread 8 Crashed:
125 0   libsystem_kernel.dylib          0x30a70350 __pthread_kill + 8
126 1   libsystem_c.dylib               0x33dff11e pthread_kill
127 2   libsystem_c.dylib               0x33e3b96e abort
128 3   libc++abi.dylib                 0x36f5bd4a abort_message
129 4   libc++abi.dylib                 0x36f58ff4 default_terminate()
130 5   libobjc.A.dylib                 0x32c69a8c _objc_terminate()
131 6   libc++abi.dylib                 0x36f59078 safe_handler_caller(void
132 7   libc++abi.dylib                 0x36f59110 std::terminate()
133 8   libc++abi.dylib                 0x36f5a50e __cxa_throw
134 9   Navigatio                       0x00d9f65a std::length_error::~length_error() + 10115470
135 10  Navigatio                       0x0ed9f732 std::length_error::~length_error() + 10115686
136 11  Navigatio                       0x00d9a438 std::length_error::~length_error() + 10094444
137 12  Navigatio                       0x00d99b52 std::length_error::~length_error() + 10092166
138 13  Navigatio                       0x0059bc32 std::length_error::~length_error() + 1711974
139 14  libsystem_c.dylib               0x33de130e _pthread_start
140 15  libsystem_c.dylib               0x33de11d4 thread_start + 4
4

1 回答 1

1

我认为你的符号是错误的。看看这些偏移量:

0x00d9f65a std::length_error::~length_error() + 10115470
0x0ed9f732 std::length_error::~length_error() + 10115686
0x00d9a438 std::length_error::~length_error() + 10094444
0x00d99b52 std::length_error::~length_error() + 10092166
0x0059bc32 std::length_error::~length_error() + 1711974

这些数字太疯狂了。这将需要std::length_error::~length_error()超过9 兆字节的代码大小。

因此,要么在符号化过程中出现了可怕的错误(例如用于提供符号的错误二进制文件),要么在std::length_error::~length_error().

于 2013-01-18T19:41:02.843 回答