Путаница с трассировкой стека уничтожения websocketpp
Я использую инструмент (инструмент 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 *buf
а также size_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> >
никогда не был казнен еще.
я чувствую себя более смущенным сейчас...