ACE ACE_TP_Reactor crash

ACE ACE_TP_Reactor crash

本文关键字:ACE crash TP Reactor      更新时间:2023-10-16

我正试图开发一个使用ACE库进行联网的程序。当我尝试分配新的ACE_TP_Reactor时,它崩溃了(程序构建成功,但当它开始执行dll时抛出了一个未处理的异常)

ACE_Reactor_Impl* imp = 0;
imp = new ACE_TP_Reactor();

这是堆栈:

    GameServer.exe!WorldSocketMgr::StartNetwork(unsigned short port, std::basic_string<char,std::char_traits<char>,std::allocator<char> > & address) Line 103   C++
ace.dll!ACE_TP_Reactor::ACE_TP_Reactor(ACE_Sig_Handler * sh, ACE_Abstract_Timer_Queue<ACE_Event_Handler *> * tq, bool mask_signals, int s_queue) Line 102   C++ <<new ACE_TP_REACTOR
ace.dll!ACE_Select_Reactor_T<ACE_Reactor_Token_T<ACE_Token> >::ACE_Select_Reactor_T<ACE_Reactor_Token_T<ACE_Token> >(ACE_Sig_Handler * sh, ACE_Abstract_Timer_Queue<ACE_Event_Handler *> * tq, int disable_notify_pipe, ACE_Reactor_Notify * notify, bool mask_signals, int s_queue) Line 485   C++
ace.dll!ACE_Select_Reactor_Impl::ACE_Select_Reactor_Impl(bool ms) Line 134  C++
[External Code] 
ace.dll!ACE_Handle_Set::ACE_Handle_Set() Line 95    C++

当程序试图执行中的this->reset ();时,它崩溃了

ACE_Handle_Set::ACE_Handle_Set (void)
{
this->reset ();
}

这是ace_handl_set 上的堆栈值

-		this	0x00ed8e00 {size_=??? max_handle_=??? mask_={fd_count=??? fd_array=0x00ed8e0c {???, ???, ???, ???, ???, ...} } }	ACE_Handle_Set *
		size_	<Unable to read memory>	
		max_handle_	<Unable to read memory>	
+		mask_	{fd_count=??? fd_array=0x00ed8e0c {???, ???, ???, ???, ???, ???, ???, ???, ???, ???, ???, ???, ???, ...} }	fd_set

编辑:问题是关于ace的所有类,例如,当我试图创建ace_Select_actor、ace_TP_Reactor等时,它都崩溃了。我认为这可能是关于DLL的,但我使用了所有库和DLL。

谢谢你的帮助。

如果没有正确使用ACE Reactor,请参阅《ACE程序员指南》第7.7节,该节解释了如何使用它。