[AGENT++] Segmentation fault when trying to use no threads
JAMES Robin
robin.james at eurocontrol.int
Wed Mar 9 17:34:18 CET 2005
We have tried to use the no threads mode in snmp++ and agent++. To do this we uncommented the defining of _NO_THREADS in agent++.h and config_snmp_pp.h and re-compiled everything. When the subagent runs it causes a segmentation fault. The back trace is:
#0 0x00263b2a in _int_malloc () from /lib/tls/libc.so.6
#1 0x00262e7d in malloc () from /lib/tls/libc.so.6
#2 0x0019f40e in operator new () from /usr/lib/libstdc++.so.5
#3 0x0019f55f in operator new[] () from /usr/lib/libstdc++.so.5
#4 0x007cfccf in Oid (this=0x88bd984, oid=@0xbfff81f0 <mailto:oid=@0xbfff81f0> ) at oid.cpp:136
#5 0x006929db in Oidx (this=0x88bd984, _ctor_arg=@0xbfff81f0 <mailto:_ctor_arg=@0xbfff81f0> ) at mib_entry.h:202
#6 0x00699026 in MibEntry (this=0x88bd938, o=@0xbfff81f0 <mailto:o=@0xbfff81f0> , a=NOACCESS) at mib_entry.cpp:128
#7 0x006d5b08 in MibGroup (this=0x88bd938, o=@0xbfff81f0 <mailto:o=@0xbfff81f0> , p=@0xbfff8210 <mailto:p=@0xbfff8210> ) at mib_context.cpp:110
#8 0x0805ed10 in graphics_mib (this=0x88bd938) at graphics_mib_agent.C:817
#9 0x080539d5 in main (argc=2, argv=0xbfff8314) at gphs_mib.C:104
The code is failing at line 817 in the following code extract:
814 // Group
815 graphics_mib::graphics_mib():
816 MibGroup("1.3.6.1.4.1.1254.1.1.11", "graphics_mib")
817 {
818 //--AgentGen BEGIN=graphics_mib::graphics_mib
819 //--AgentGen END
820 add(new graphics_mib_gphAttributeChangeCount());
821 add(new graphics_mib_gphServerType());
822 add(new graphics_mib_gphServerState());
823 add(new graphics_mib_gphGraphicsState());
824 add(new graphics_mib_gphPointerState());
825 add(new graphics_mib_gphKeyboardState());
826 add(new graphics_mib_decGraphicsCardType());
827 add(new graphics_mib_decPointerType());
828 add(new graphics_mib_decKeyboardType());
829 add(new graphics_mib_sonyDdmMajorSystemState());
830 add(new graphics_mib_sonyDdmM1BoardState());
831 add(new graphics_mib_sonyDdmDacState());
832 add(new graphics_mib_sonyDdmDfgState());
833 //--AgentGen BEGIN=graphics_mib::graphics_mib:post
834 //--AgentGen END
835 }
We also tried to use the no threads mode by defining _NO_THREADS in Makefile.linux but then had undefined references when linking the subagent:
gphs_mib.o: In function `Agentpp::Thread::clone()':
agent++/include/agent_pp/List.h:282: undefined reference to `Agentpp::Thread::get_runnable()'
gphs_mib.o:agent++/include/agent_pp/List.h:169: undefined reference to `Agentpp::Thread::Thread(Agentpp::Runnable&)'
gphs_mib.o: In function `Agentpp::TaskManager::clone()':
agent++/include/agent_pp/List.h:1077: undefined reference to `Agentpp::ThreadPool::ThreadPool(int, int)'
gphs_mib.o:agent++/include/agent_pp/List.h:485: undefined reference to `Agentpp::TaskManager::TaskManager(Agentpp::ThreadPool*, int)'
When compiled without defining _NO_THREADS the program works. What settings should be we be using to remove thread support?
Regards
Robin James
____
This message and any files transmitted with it are legally privileged and intended for the sole use of the individual(s) or entity to whom they are addressed. If you are not the intended recipient, please notify the sender by reply and delete the message and any attachments from your system. Any unauthorised use or disclosure of the content of this message is strictly prohibited and may be unlawful.
Nothing in this e-mail message amounts to a contractual or legal commitment on the part of EUROCONTROL unless it is confirmed by appropriately signed hard copy.
Any views expressed in this message are those of the sender.
More information about the AGENTPP
mailing list