I guess you are passing an uninitialized memory location (m_IoService) to the constructor of m_Socket. I guess m_IoService must be fully constructed before being passed to m_Socket. Are you aware of the order of construction of base-objects and member-objects and the leave-constructor? Peter -----Original Message----- From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Jean-Sebastien Stoezel Sent: Monday, July 28, 2008 13:17 To: boost-users@lists.boost.org Subject: [Boost-users] Initialization of boost::asio::ip::tcp::socketgeneates unhandled exception Hi, I'm getting confused by the unhandled exception I get when initializing a TCP socket. This happens when the socket is instantiated and initialized with an IO service object, from the constructor of a class called CProcessor. Here are the variables declaration, inside the class: boost::asio::ip::tcp::socket m_Socket; boost::asio::io_service m_IoService; Here is what the default constructor looks like for this class: CProcessor::CProcessor(void): m_Socket(m_IoService) {} The exception is generated by this constructor, as soon as the m_Socket object is initialized. The type of unhandled exception I got is as follow: "Unhandled exception at whatever in hatever.exe: 0xC0000005: Access violation reading location 0xcccccce0." The program breaks in win_mutex.hpp, at a line calling: ::EnterCriticalSection(&crit_section_); I run VS9. Any idea?! Thanks, Jean _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users