boost::coroutine 无法显示调用栈
(金庆的专栏)
一例因 boost::format() 格式化参数个数错误造成的 coredump,
因为使用了 boost::coroutine, 无法显示异常时的调用栈,
仅显示了异常的类型:
#0 raise()
#1 abort()
#2 __gnu_cxx::__verbose_terminate_handler()
#3 ??
#4 std::terminate()
#5 __cxa_throw()
#6 boost::exception_detail::clone_impl<
boost::exception_detail::error_info_injector<
boost::io::too_many_args> >::rethrow()
at /usr/include/boost/exception/exception.hpp:466
#7 boost::rethow_exception()
at /usr/include/boost/exception/detail/exception_ptr.hpp:458
#8 boost::coroutine::detail::coroutine_base_resume<
void(), boost::coroutines::detail::coroutine_base<void()>, void, 0>
::resume(void)
at /usr/include/boost/coroutine/v1/detail/coroutine_base_resume.hpp:57
#9 boost::coroutines::detail::coroutine_op<void(),
boost::coroutines::coroutine<void(), 0>, void, 0>::operator()(void)
at /usr/include/boost/coroutine/v1/detail/coroutine_op.hpp:46
#10 PlayerCoro::operator()
at /home/jinqing/mnt/code/server/loginserver/PlayerCoro.h