大牛们请进,一个boost引发的崩溃,debug模式下,该如何处理

大牛们请进,一个boost引发的崩溃,debug模式下


VS2010调试模式下调用堆栈如下。

我想知道这个问题是我们程序里面写的bug,还是boost本身的bug,要是boost本身的bug,那我们是怎样触发的这个bug呢?


恳请大牛指教!!

C/C++ code




>    X.dll!std::_Debug_message(const wchar_t * message, const wchar_t * file, unsigned int line)  Line 15    C++
     X.dll!std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::operator*()  Line 78 + 0x11 bytes    C++
     X.dll!boost::asio::detail::buffer_debug_check<std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> > >::operator()()  Line 446    C++
     X.dll!boost::detail::function::void_function_obj_invoker0<boost::asio::detail::buffer_debug_check<std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> > >,void>::invoke(boost::detail::function::function_buffer & function_obj_ptr)  Line 154    C++
     X.dll!boost::function0<void>::operator()()  Line 1013 + 0x16 bytes    C++
     X.dll!boost::asio::detail::buffer_cast_helper(const boost::asio::const_buffer & b)  Line 294    C++
     X.dll!boost::asio::buffer_cast<void const *>(const boost::asio::const_buffer & b)  Line 311 + 0x9 bytes    C++
     X.dll!boost::asio::buffer(const boost::asio::const_buffer & b, unsigned int max_size_in_bytes)  Line 648 + 0x70 bytes    C++
     X.dll!boost::asio::detail::consuming_buffers_iterator<boost::asio::const_buffer,boost::asio::const_buffer const *>::consuming_buffers_iterator<boost::asio::const_buffer,boost::asio::const_buffer const *>(bool at_end, const boost::asio::const_buffer & first, const boost::asio::const_buffer * begin_remainder, const boost::asio::const_buffer * end_remainder, unsigned int max_size)  Line 60 + 0x79 bytes    C++
     X.dll!boost::asio::detail::consuming_buffers<boost::asio::const_buffer,boost::asio::const_buffers_1>::begin()  Line 163 + 0x2e bytes    C++
     X.dll!boost::asio::detail::win_iocp_socket_service<boost::asio::ip::tcp>::send_operation<boost::asio::detail::consuming_buffers<boost::asio::const_buffer,boost::asio::const_buffers_1>,boost::asio::detail::write_handler<boost::asio::basic_stream_socket<boost::asio::ip::tcp,boost::asio::stream_socket_service<boost::asio::ip::tcp> >,boost::asio::const_buffers_1,boost::asio::detail::transfer_all_t,boost::_bi::bind_t<void,boost::_mfi::mf2<void,framework::Asyn_HttpClient,boost::system::error_code const &,unsigned int>,boost::_bi::list3<boost::_bi::value<boost::shared_ptr<framework::Asyn_HttpClient> >,boost::arg<1>,boost::arg<2> > > > >::do_completion_impl(boost::asio::detail::win_iocp_io_service::operation * op, unsigned long last_error, unsigned int bytes_transferred)  Line 757 + 0xf bytes    C++
     X.dll!boost::asio::detail::win_iocp_io_service::operation::on_completion(unsigned long last_error, unsigned long bytes_transferred)  Line 114 + 0x1c bytes    C++
     X.dll!boost::asio::detail::win_iocp_io_service::do_one(bool block, boost::system::error_code & ec)  Line 545 + 0x10 bytes    C++
     X.dll!boost::asio::detail::win_iocp_io_service::run(boost::system::error_code & ec)  Line 229 + 0xe bytes    C++
     X.dll!boost::asio::io_service::run()  Line 68 + 0xf bytes    C++
     X.dll!boost::_mfi::mf0<unsigned int,boost::asio::io_service>::call<boost::shared_ptr<boost::asio::io_service> >(boost::shared_ptr<boost::asio::io_service> & u, const void * __formal)  Line 40 + 0x17 bytes    C++
     X.dll!boost::_mfi::mf0<unsigned int,boost::asio::io_service>::operator()<boost::shared_ptr<boost::asio::io_service> >(boost::shared_ptr<boost::asio::io_service> & u)  Line 56    C++
     X.dll!boost::_bi::list1<boost::_bi::value<boost::shared_ptr<boost::asio::io_service> > >::operator()<unsigned int,boost::_mfi::mf0<unsigned int,boost::asio::io_service>,boost::_bi::list0>(boost::_bi::type<unsigned int> __formal, boost::_mfi::mf0<unsigned int,boost::asio::io_service> & f, boost::_bi::list0 & a, boost::_bi::type<unsigned int> __formal)  Line 244    C++
     X.dll!boost::_bi::bind_t<unsigned int,boost::_mfi::mf0<unsigned int,boost::asio::io_service>,boost::_bi::list1<boost::_bi::value<boost::shared_ptr<boost::asio::io_service> > > >::operator()()  Line 21    C++
     X.dll!boost::detail::thread_data<boost::_bi::bind_t<unsigned int,boost::_mfi::mf0<unsigned int,boost::asio::io_service>,boost::_bi::list1<boost::_bi::value<boost::shared_ptr<boost::asio::io_service> > > > >::run()  Line 57    C++
     X.dll!boost::`anonymous namespace'::thread_start_function(void * param)  Line 168    C++
     X.dll!_callthreadstartex()  Line 314 + 0xf bytes    C
     X.dll!_threadstartex(void * ptd)  Line 297    C
     kernel32.dll!767a1194()     
     [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]    
     ntdll.dll!7738b429()     
     ntdll.dll!7738b3fc()