Сбой iOS std::length_error::~length_error()

В моем приложении я также использовал C++/Boost lib. Странно, что все журналы сбоев связаны с 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

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 мегабайт кода размером.

Таким образом, во время символизации что-то пошло не так, как надо (например, неверный двоичный файл используется для предоставления символов), или в 9 мегабайтах кода нет символов после std::length_error::~length_error(),

Другие вопросы по тегам