1

我正在使用 Instrument(XCode 工具) 来获取我的程序的堆栈跟踪,我得到了以下结果:

在此处输入图像描述

在这张照片中,它显示了破坏

std::__1::vector<websocketpp::transport::buffer, std::__1::allocator<websocketpp::transport::buffer> >::~vector()

叫做

std::__1::vector<boost::asio::detail::timer_queue<boost::asio::detail::chrono_time_traits<std::__1::chrono::steady_clock, boost::asio::wait_traits<std::__1::chrono::steady_clock> > >::heap_entry, std::__1::allocator<boost::asio::detail::timer_queue<boost::asio::detail::chrono_time_traits<std::__1::chrono::steady_clock, boost::asio::wait_traits<std::__1::chrono::steady_clock> > >::heap_entry> >::~vector()

但是,当我深入研究 的源代码时websocketpp::transport::buffer,它的唯一成员是char const *bufsize_t len显示如下:

// defined in websocketpp/transport/base/connection.hpp

137 /// A simple utility buffer class
138 struct buffer {
139     buffer(char const * b, size_t l) : buf(b),len(l) {}
140
141     char const * buf;
142     size_t len;
143 }; 

那么,为什么破坏websocketpp::transport::buffer会导致破坏vector<boost::asio::detail::timer_queue.... ::heap_entry> >呢?

更新:2018-10-18

今天我lldb调试我的程序,发现销毁的vector<boost::asio::detail::timer_queue.... ::heap_entry> >从来没有被执行过。

我现在感觉更迷茫了……

4

0 回答 0