Please report new issues athttps://github.com/DOCGroup
Malloc_Test seg faults here on LynxOS, both x86 and PPC: #0 0x1f97 in ACE_Malloc<ACE_MMAP_Memory_Pool, ACE_MMAP_Memory_Pool_Options, ACE_Process_Mutex>::shared_malloc () #1 0x2162 in ACE_Malloc<ACE_MMAP_Memory_Pool, ACE_MMAP_Memory_Pool_Options, ACE_Process_Mutex>::malloc () #2 0x4b1 in initialize ()
The SEGV happens: at /project/danzontmp/levine/ACE_wrappers/build/lynx/ace/Malloc_T.cpp:316 316 if (currp->s_.size_ >= nunits) // Big enough currp appears to have a bogus value: (gdb) p currp $4 = (ACE_Malloc_Header *) 0xf68990c3 (gdb) p *currp Cannot access memory at address 0xf68990c3.
From Doug: That's weird! The only thing I can think of is that maybe LynxOS doesn't like this address in the child: static const void *CHILD_BASE_ADDR = #if defined (ACE_HAS_POSITION_INDEPENDENT_MALLOC) 64 * 1024 + #endif /* ACE_HAS_POSITION_INDEPENDENT_MALLOC */ ACE_DEFAULT_BASE_ADDR; Can you please let me know if the segfault is occurring in the child or in the parent? If it's in the parent, then I'm at a loss. If it's in the child, then we can probably pick a better base address, which should make LynxOS happy.
The segfault is in the parent. ACE_DEFAULT_BASE_ADDR is 0 on LynxOS. That tells the OS to pick the address. It works well best other tests. ACE_MAP_FIXED is 0, as well.
I recommend that we don't enable ACE_HAS_POSITION_INDEPENDENT_MALLOC with Lynx.
As far as I can tell, we don't enable ACE_HAS_POSITION_INDEPENDENT_MALLOC on LynxOS.
It's not clear why this fails, so for now, I've commented out the test on LynxOS
Fixed the disabling of the test on LynxOS: ChangeLogTag: Wed Oct 13 10:11:47 1999 David L. Levine <levine@cs.wustl.edu>