刚开始的时候一直不知道怎么回事,不过幸好我有在每个class 的析构时都打印一条信息。
这个时候发现我的一个tcp_connection (就是自定义的一个连接类) 在最后才被析构。
所以感觉这里可能出了问题。
由于tcp_connection 是派生自boost::enable_shared_from_this<tcp_connection> 的,
猜想可能是需要提前释放某些资源,而不导致io_service 这个资源释放的时候某些数据不对。
所以我就在socket 调用close() 之后将这个tcp_connection reset() 了(就好比是主动delete)。
结果还真是这样,最后这个崩溃就解决了。
嘻嘻。