您的位置:首页 > 其它

VC调试boost::asio::async_send_to时候的一个问题(_Debug_message assert的异常)

2016-09-19 16:00 453 查看
最近遇到一个奇怪的问题,在VS2010中调试BOOST::ASIO的时候会出现如题说明的异常,在网上找了一圈,有个哥们以前遇到过 http://bbs.csdn.net/topics/360059975,但是没给出解决方案。下面也没有给出解决方案,只是说明了使用方法

代码中使用的是如下的语句:

socket_.async_send_to(
boost::asio::buffer( strSipHeader, strSipHeader.size() ), targetEndpoint_, 
boost::bind( &TestSession::onSend, this, boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred) );


其中strSipHeader是一个函数内自动变量,类型为std::string

尝试使用各种方式,将boost::asio::buffer( strSipHeader, strSipHeader.size() )改为 boost::asio::buffer( strSipHeader )

也是出现异常。

后来无意中将strSipHeader改为char[]类型的局部变量,发现问题就不再出现了。

但是按照官方文档buffer传递过去确实可以是std::string类型。这就有点费解,由于能力有限,也没有去探究boost的底层实现。

姑且把这个问题及其方法放在这里
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐