Intel® Collaboration Suite for WebRTC
Community support and discussions on the Intel® Collaboration Suite for WebRTC (Intel® CS for WebRTC).

ConferenceClient::Leave causes crash

htnik_h_
Beginner
533 Views

I wrote a simple consle test in C++ to check basic operations, it perform only ConferenceClient::Join and ConferenceClient::Leave. In debug version after leave command finished successfully some background thread causes abnormal termination because of memory corruption during "free" function call. Release version of the same program works silently without crashes, but it's just a probability of random crash.

I use OpenSSL 1.0.2 precompiled binaries for VS2013 with dinamic libraries (OpenSSL 1.1.0 causes crash) and Boost 1.62.0 to compile sioclient library. Here is the code of the test (Visual Studio 2015). token.h and token.cpp are from example Qt project.

_____________________________________________________
#include <stdio.h>
#include <Windows.h>

#include "woogeen/base/clientconfiguration.h"
#include "woogeen/conference/remotemixedstream.h"
#include "woogeen/conference/conferenceclient.h"
#include "token.h"

using namespace std;
using namespace woogeen::base;
using namespace woogeen::conference;

shared_ptr<ConferenceClient> client;
ConferenceClientObserver observer;

bool joined;

//--------------------------------------------------------------------
int main (int argc, const char * argv[]) {
//--------------------------------------------------------------------
    // ice server
    IceServer ice;
    ice.urls.push_back("stun:52.78.15.236");
    ice.username = ice.password = "";
    vector<woogeen::base::IceServer> ice_servers;
    ice_servers.push_back (ice);

    // configuration
    ConferenceClientConfiguration config = ConferenceClientConfiguration ();
    config.ice_servers = ice_servers;
    MediaCodec mc;
    // mc.video_codec = MediaCodec::H264;
    mc.video_codec = MediaCodec::VP8;
    config.media_codec = mc;

    client = std::make_shared<ConferenceClient> (config);
    client->AddObserver (observer);

    //.................................................................
    string uri = "http://52.78.15.236:3001";
    string token = getToken (uri);

    joined = false;

    if (token != "")
    {
        printf ("token = %s\n\n", token.c_str());
        printf ("Join...\n");

        client->Join (token,
            [=] (std::shared_ptr<User> user)
            {
                printf ("Join succeeded!\n");
                joined = true;
            },
            [=] (std::unique_ptr<ConferenceException> err)
            {
                printf ("Join failed!\n");
            });
    }

    while (!joined)
    {
        Sleep (100);
    }

    printf ("Leave...\n");

    client->Leave (
        [=] ()
        {
            printf ("Leave succeeded!\n");
        },
        [=] (std::unique_ptr<ConferenceException> err)
        {
            printf ("Leave failed!\n");
        });

    while (true)
    {
        Sleep (100);
    }
}
_____________________________________________________

The output of the code

[2016-11-15 21:22:29] [devel] endpoint constructor
[2016-11-15 21:22:29] [devel] client constructor
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Allow-Headers: origin, content-type
Content-Type: text/html; charset=utf-8
Content-Length: 244
ETag: W/"f4-34lWKLn5AM1qpHkJEpN8GA"
Date: Tue, 15 Nov 2016 17:22:36 GMT
Connection: close

token = eyJ0b2tlbklkIjoiNTgyYjQ0NWM4MjY4NjAwODlhYTgzYzBlIiwiaG9zdCI6IjUyLjc4LjE1LjIzNjo4MDgwIiwic2VjdXJlIjp0cnVlLCJzaWduYXR1cmUiOiJPREkwWW1KbE1UUXlPR1ZsTmpSaE5qVXpZVEF3WkdFd09HRXlNVGhsTURnME5URTNOakF3TnpJeU9HTTFNekZtWVRCaVpEY3hOV0kxTWpjNE9UbGhZUT09In0=

Join...
[2016-11-15 21:22:30] [connect] Successful connection
[2016-11-15 21:22:31] [connect] WebSocket Connection 52.78.15.236:8080 v-2 "WebSocket++/0.7.0" /socket.io/?EIO=4&transport=websocket&t=1479230550 101
Connected.
On handshake,sid:FDM2p5QYg4aCCi2rAAAy,ping interval:25000,ping timeout60000
Received Message type (Connect)
encoded payload length:181
Received Message type (ACK)
Message length: 2
Join succeeded!
(conferenceclient.cc:149): Find streams in the conference.
(conferenceclient.cc:560): OnStreamAdded: mixed stream.
Leave...
encoded payload length:2
Close by reason:End by user
Client Disconnected.
clear timers
(conferencesocketsignalingchannel.cc:73): Socket.IO disconnected.
Leave succeeded!
[2016-11-15 21:22:32] [disconnect] Disconnect close local:[1000,End by user] remote:[1000,End by user]

_____________________________________________________

After the last line assertion failure heppen:

File minkernel\crts\ucrt\src\appcrt\heap\debug_heap.cpp, line 892.

Expression is_block_type_valid(header->_block_use)

 

 

0 Kudos
2 Replies
htnik_h_
Beginner
533 Views

Sometime crash message is different:

File minkernel\crts\ucrt\src\appcrt\heap\debug_heap.cpp, line 888.

Expression _CrtIsValidHeapPointer(block)

0 Kudos
htnik_h_
Beginner
533 Views

forgot to metion, the stack trace for such crash is

 ntdll.dll!777f97c5()Unknown
 [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
 ntdll.dll!7779fc92()Unknown
 ntdll.dll!7775c6dc()Unknown
>WoogeenConsoleTest.exe!free(void * block) Line 16C++
 WoogeenConsoleTest.exe!_CRYPTO_free()Unknown
 WoogeenConsoleTest.exe!boost::asio::ssl::detail::stream_core::~stream_core() Line 60C++
 WoogeenConsoleTest.exe!boost::asio::ssl::stream<boost::asio::basic_stream_socket<boost::asio::ip::tcp,boost::asio::stream_socket_service<boost::asio::ip::tcp> > >::~stream<boost::asio::basic_stream_socket<boost::asio::ip::tcp,boost::asio::stream_socket_service<boost::asio::ip::tcp> > >() Line 117C++
 WoogeenConsoleTest.exe!boost::asio::ssl::stream<boost::asio::basic_stream_socket<boost::asio::ip::tcp,boost::asio::stream_socket_service<boost::asio::ip::tcp> > >::`scalar deleting destructor'(unsigned int)C++
 WoogeenConsoleTest.exe!std::_Ref_count_obj<boost::asio::ssl::stream<boost::asio::basic_stream_socket<boost::asio::ip::tcp,boost::asio::stream_socket_service<boost::asio::ip::tcp> > > >::_Destroy() Line 914C++
 WoogeenConsoleTest.exe!std::_Ref_count_base::_Decref() Line 112C++
 WoogeenConsoleTest.exe!std::_Ptr_base<boost::asio::ssl::stream<boost::asio::basic_stream_socket<boost::asio::ip::tcp,boost::asio::stream_socket_service<boost::asio::ip::tcp> > > >::_Decref() Line 339C++
 WoogeenConsoleTest.exe!std::shared_ptr<boost::asio::ssl::stream<boost::asio::basic_stream_socket<boost::asio::ip::tcp,boost::asio::stream_socket_service<boost::asio::ip::tcp> > > >::~shared_ptr<boost::asio::ssl::stream<boost::asio::basic_stream_socket<boost::asio::ip::tcp,boost::asio::stream_socket_service<boost::asio::ip::tcp> > > >() Line 568C++
 WoogeenConsoleTest.exe!websocketpp::transport::asio::tls_socket::connection::~connection()C++
 WoogeenConsoleTest.exe!websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config>::~connection<websocketpp::config::debug_asio_tls::transport_config>()C++
 WoogeenConsoleTest.exe!websocketpp::connection<websocketpp::config::debug_asio_tls>::~connection<websocketpp::config::debug_asio_tls>()C++
 WoogeenConsoleTest.exe!websocketpp::connection<websocketpp::config::debug_asio_tls>::`scalar deleting destructor'(unsigned int)C++
 WoogeenConsoleTest.exe!std::_Ref_count_obj<websocketpp::connection<websocketpp::config::debug_asio_tls> >::_Destroy() Line 914C++
 WoogeenConsoleTest.exe!std::_Ref_count_base::_Decref() Line 112C++
 WoogeenConsoleTest.exe!std::_Ptr_base<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> >::_Decref() Line 339C++
 WoogeenConsoleTest.exe!std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> >::~shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> >() Line 568C++
 WoogeenConsoleTest.exe!boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >::~value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >()C++
 WoogeenConsoleTest.exe!boost::_bi::storage1<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > > >::~storage1<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > > >()C++
 WoogeenConsoleTest.exe!boost::_bi::storage2<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >,boost::_bi::value<std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > > > >::~storage2<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >,boost::_bi::value<std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > > > >()C++
 WoogeenConsoleTest.exe!boost::_bi::storage3<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >,boost::_bi::value<std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > > >,boost::_bi::value<boost::function<void __cdecl(std::error_code const &)> > >::~storage3<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >,boost::_bi::value<std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > > >,boost::_bi::value<boost::function<void __cdecl(std::error_code const &)> > >()C++
 WoogeenConsoleTest.exe!boost::_bi::storage4<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >,boost::_bi::value<std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > > >,boost::_bi::value<boost::function<void __cdecl(std::error_code const &)> >,boost::arg<1> >::~storage4<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >,boost::_bi::value<std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > > >,boost::_bi::value<boost::function<void __cdecl(std::error_code const &)> >,boost::arg<1> >()C++
 WoogeenConsoleTest.exe!boost::_bi::list4<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >,boost::_bi::value<std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > > >,boost::_bi::value<boost::function<void __cdecl(std::error_code const &)> >,boost::arg<1> >::~list4<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >,boost::_bi::value<std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > > >,boost::_bi::value<boost::function<void __cdecl(std::error_code const &)> >,boost::arg<1> >()C++
 WoogeenConsoleTest.exe!boost::_bi::bind_t<void,boost::_mfi::mf3<void,websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config>,std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > >,boost::function<void __cdecl(std::error_code const &)>,boost::system::error_code const &>,boost::_bi::list4<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >,boost::_bi::value<std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > > >,boost::_bi::value<boost::function<void __cdecl(std::error_code const &)> >,boost::arg<1> > >::~bind_t<void,boost::_mfi::mf3<void,websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config>,std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > >,boost::function<void __cdecl(std::error_code const &)>,boost::system::error_code const &>,boost::_bi::list4<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >,boost::_bi::value<std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > > >,boost::_bi::value<boost::function<void __cdecl(std::error_code const &)> >,boost::arg<1> > >()C++
 WoogeenConsoleTest.exe!boost::asio::detail::rewrapped_handler<boost::asio::detail::binder1<boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf3<void,websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config>,std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > >,boost::function<void __cdecl(std::error_code const &)>,boost::system::error_code const &>,boost::_bi::list4<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >,boost::_bi::value<std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > > >,boost::_bi::value<boost::function<void __cdecl(std::error_code const &)> >,boost::arg<1> > >,boost::asio::detail::is_continuation_if_running>,boost::system::error_code>,boost::_bi::bind_t<void,boost::_mfi::mf3<void,websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config>,std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > >,boost::function<void __cdecl(std::error_code const &)>,boost::system::error_code const &>,boost::_bi::list4<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >,boost::_bi::value<std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > > >,boost::_bi::value<boost::function<void __cdecl(std::error_code const &)> >,boost::arg<1> > > >::~rewrapped_handler<boost::asio::detail::binder1<boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf3<void,websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config>,std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > >,boost::function<void __cdecl(std::error_code const &)>,boost::system::error_code const &>,boost::_bi::list4<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >,boost::_bi::value<std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > > >,boost::_bi::value<boost::function<void __cdecl(std::error_code const &)> >,boost::arg<1> > >,boost::asio::detail::is_continuation_if_running>,boost::system::error_code>,boost::_bi::bind_t<void,boost::_mfi::mf3<void,websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config>,std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > >,boost::function<void __cdecl(std::error_code const &)>,boost::system::error_code const &>,boost::_bi::list4<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >,boost::_bi::value<std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::()C++
 WoogeenConsoleTest.exe!boost::asio::detail::completion_handler<boost::asio::detail::rewrapped_handler<boost::asio::detail::binder1<boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf3<void,websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config>,std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > >,boost::function<void __cdecl(std::error_code const &)>,boost::system::error_code const &>,boost::_bi::list4<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >,boost::_bi::value<std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > > >,boost::_bi::value<boost::function<void __cdecl(std::error_code const &)> >,boost::arg<1> > >,boost::asio::detail::is_continuation_if_running>,boost::system::error_code>,boost::_bi::bind_t<void,boost::_mfi::mf3<void,websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config>,std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > >,boost::function<void __cdecl(std::error_code const &)>,boost::system::error_code const &>,boost::_bi::list4<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >,boost::_bi::value<std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > > >,boost::_bi::value<boost::function<void __cdecl(std::error_code const &)> >,boost::arg<1> > > > >::do_complete(boost::asio::detail::win_iocp_io_service * owner, boost::asio::detail::win_iocp_operation * base, const boost::system::error_code & __formal, unsigned int __formal) Line 71C++
 WoogeenConsoleTest.exe!??@3d6907229b4f277c7fdb4116819c12f9@(boost::asio::detail::strand_service::strand_impl * & impl, boost::asio::detail::rewrapped_handler<boost::asio::detail::binder1<boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf3<void,websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config>,std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > >,boost::function<void __cdecl(std::error_code const &)>,boost::system::error_code const &>,boost::_bi::list4<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >,boost::_bi::value<std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > > >,boost::_bi::value<boost::function<void __cdecl(std::error_code const &)> >,boost::arg<1> > >,boost::asio::detail::is_continuation_if_running>,boost::system::error_code>,boost::_bi::bind_t<void,boost::_mfi::mf3<void,websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config>,std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > >,boost::function<void __cdecl(std::error_code const &)>,boost::system::error_code const &>,boost::_bi::list4<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >,boost::_bi::value<std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > > >,boost::_bi::value<boost::function<void __cdecl(std::error_code const &)> >,boost::arg<1> > > > & handler) Line 88C++
 WoogeenConsoleTest.exe!??@0df5f076bbd04a3a81d66057c9adb268@(boost::asio::detail::rewrapped_handler<boost::asio::detail::binder1<boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf3<void,websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config>,std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > >,boost::function<void __cdecl(std::error_code const &)>,boost::system::error_code const &>,boost::_bi::list4<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >,boost::_bi::value<std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > > >,boost::_bi::value<boost::function<void __cdecl(std::error_code const &)> >,boost::arg<1> > >,boost::asio::detail::is_continuation_if_running>,boost::system::error_code>,boost::_bi::bind_t<void,boost::_mfi::mf3<void,websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config>,std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > >,boost::function<void __cdecl(std::error_code const &)>,boost::system::error_code const &>,boost::_bi::list4<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >,boost::_bi::value<std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > > >,boost::_bi::value<boost::function<void __cdecl(std::error_code const &)> >,boost::arg<1> > > > && handler) Line 160C++
 WoogeenConsoleTest.exe!??@d4c9529087a2349d1eae6a370978f754@(boost::asio::detail::binder1<boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf3<void,websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config>,std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > >,boost::function<void __cdecl(std::error_code const &)>,boost::system::error_code const &>,boost::_bi::list4<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >,boost::_bi::value<std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > > >,boost::_bi::value<boost::function<void __cdecl(std::error_code const &)> >,boost::arg<1> > >,boost::asio::detail::is_continuation_if_running>,boost::system::error_code> & function, boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf3<void,websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config>,std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > >,boost::function<void __cdecl(std::error_code const &)>,boost::system::error_code const &>,boost::_bi::list4<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >,boost::_bi::value<std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > > >,boost::_bi::value<boost::function<void __cdecl(std::error_code const &)> >,boost::arg<1> > >,boost::asio::detail::is_continuation_if_running> * this_handler) Line 232C++
 WoogeenConsoleTest.exe!??@8e005d2b74b41711b4a32dcaa96172a8@(boost::asio::detail::binder1<boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf3<void,websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config>,std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > >,boost::function<void __cdecl(std::error_code const &)>,boost::system::error_code const &>,boost::_bi::list4<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >,boost::_bi::value<std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > > >,boost::_bi::value<boost::function<void __cdecl(std::error_code const &)> >,boost::arg<1> > >,boost::asio::detail::is_continuation_if_running>,boost::system::error_code> & function, boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf3<void,websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config>,std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > >,boost::function<void __cdecl(std::error_code const &)>,boost::system::error_code const &>,boost::_bi::list4<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >,boost::_bi::value<std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > > >,boost::_bi::value<boost::function<void __cdecl(std::error_code const &)> >,boost::arg<1> > >,boost::asio::detail::is_continuation_if_running> & context) Line 37C++
 WoogeenConsoleTest.exe!boost::asio::detail::wait_handler<boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,boost::_bi::bind_t<void,boost::_mfi::mf3<void,websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config>,std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > >,boost::function<void __cdecl(std::error_code const &)>,boost::system::error_code const &>,boost::_bi::list4<boost::_bi::value<std::shared_ptr<websocketpp::transport::asio::connection<websocketpp::config::debug_asio_tls::transport_config> > >,boost::_bi::value<std::shared_ptr<boost::asio::basic_waitable_timer<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock>,boost::asio::waitable_timer_service<std::chrono::steady_clock,boost::asio::wait_traits<std::chrono::steady_clock> > > > >,boost::_bi::value<boost::function<void __cdecl(std::error_code const &)> >,boost::arg<1> > >,boost::asio::detail::is_continuation_if_running> >::do_complete(boost::asio::detail::win_iocp_io_service * owner, boost::asio::detail::win_iocp_operation * base, const boost::system::error_code & __formal, unsigned int __formal) Line 70C++
 WoogeenConsoleTest.exe!boost::asio::detail::win_iocp_operation::complete(boost::asio::detail::win_iocp_io_service & owner, const boost::system::error_code & ec, unsigned int bytes_transferred) Line 46C++
 WoogeenConsoleTest.exe!boost::asio::detail::win_iocp_io_service::do_one(bool block, boost::system::error_code & ec) Line 406C++
 WoogeenConsoleTest.exe!boost::asio::detail::win_iocp_io_service::run(boost::system::error_code & ec) Line 164C++
 WoogeenConsoleTest.exe!boost::asio::io_service::run() Line 59C++
 WoogeenConsoleTest.exe!websocketpp::transport::asio::endpoint<websocketpp::config::debug_asio_tls::transport_config>::run() Line 615C++
 WoogeenConsoleTest.exe!sio::client_impl::run_loop() Line 195C++
 WoogeenConsoleTest.exe!boost::_mfi::mf0<void,sio::client_impl>::operator()(sio::client_impl * p) Line 49C++
 WoogeenConsoleTest.exe!boost::_bi::list1<boost::_bi::value<sio::client_impl *> >::operator()<boost::_mfi::mf0<void,sio::client_impl>,boost::_bi::list0>(boost::_bi::type<void> __formal, boost::_mfi::mf0<void,sio::client_impl> & f, boost::_bi::list0 & a, int __formal) Line 260C++
 WoogeenConsoleTest.exe!boost::_bi::bind_t<void,boost::_mfi::mf0<void,sio::client_impl>,boost::_bi::list1<boost::_bi::value<sio::client_impl *> > >::operator()() Line 1295C++
 WoogeenConsoleTest.exe!std::_Invoker_functor::_Call<boost::_bi::bind_t<void,boost::_mfi::mf0<void,sio::client_impl>,boost::_bi::list1<boost::_bi::value<sio::client_impl *> > > >(boost::_bi::bind_t<void,boost::_mfi::mf0<void,sio::client_impl>,boost::_bi::list1<boost::_bi::value<sio::client_impl *> > > && _Obj) Line 1377C++
 WoogeenConsoleTest.exe!std::invoke<boost::_bi::bind_t<void,boost::_mfi::mf0<void,sio::client_impl>,boost::_bi::list1<boost::_bi::value<sio::client_impl *> > > >(boost::_bi::bind_t<void,boost::_mfi::mf0<void,sio::client_impl>,boost::_bi::list1<boost::_bi::value<sio::client_impl *> > > && _Obj) Line 1443C++
 WoogeenConsoleTest.exe!std::_LaunchPad<std::unique_ptr<std::tuple<boost::_bi::bind_t<void,boost::_mfi::mf0<void,sio::client_impl>,boost::_bi::list1<boost::_bi::value<sio::client_impl *> > > >,std::default_delete<std::tuple<boost::_bi::bind_t<void,boost::_mfi::mf0<void,sio::client_impl>,boost::_bi::list1<boost::_bi::value<sio::client_impl *> > > > > > >::_Execute<0>(std::tuple<boost::_bi::bind_t<void,boost::_mfi::mf0<void,sio::client_impl>,boost::_bi::list1<boost::_bi::value<sio::client_impl *> > > > & _Tup, std::integer_sequence<unsigned int,0> __formal) Line 240C++
 WoogeenConsoleTest.exe!std::_LaunchPad<std::unique_ptr<std::tuple<boost::_bi::bind_t<void,boost::_mfi::mf0<void,sio::client_impl>,boost::_bi::list1<boost::_bi::value<sio::client_impl *> > > >,std::default_delete<std::tuple<boost::_bi::bind_t<void,boost::_mfi::mf0<void,sio::client_impl>,boost::_bi::list1<boost::_bi::value<sio::client_impl *> > > > > > >::_Run(std::_LaunchPad<std::unique_ptr<std::tuple<boost::_bi::bind_t<void,boost::_mfi::mf0<void,sio::client_impl>,boost::_bi::list1<boost::_bi::value<sio::client_impl *> > > >,std::default_delete<std::tuple<boost::_bi::bind_t<void,boost::_mfi::mf0<void,sio::client_impl>,boost::_bi::list1<boost::_bi::value<sio::client_impl *> > > > > > > * _Ln) Line 247C++
 WoogeenConsoleTest.exe!std::_LaunchPad<std::unique_ptr<std::tuple<boost::_bi::bind_t<void,boost::_mfi::mf0<void,sio::client_impl>,boost::_bi::list1<boost::_bi::value<sio::client_impl *> > > >,std::default_delete<std::tuple<boost::_bi::bind_t<void,boost::_mfi::mf0<void,sio::client_impl>,boost::_bi::list1<boost::_bi::value<sio::client_impl *> > > > > > >::_Go() Line 232C++
 WoogeenConsoleTest.exe!std::_Pad::_Call_func(void *)Unknown
 WoogeenConsoleTest.exe!invoke_thread_procedure(unsigned int(__stdcall*)(void *) procedure, void * const context) Line 92C++
 WoogeenConsoleTest.exe!thread_start<unsigned int (__stdcall*)(void *)>(void * const parameter) Line 115C++
 kernel32.dll!77643744()Unknown
 ntdll.dll!77779e54()Unknown
 ntdll.dll!77779e1f()Unknown

 

0 Kudos
Reply