On Thu, 2012-08-23 at 10:28 +1000, Tony Butt wrote: > On Tue, 2012-08-21 at 12:08 +0100, Daniel Shahaf wrote: > > Daniel Shahaf wrote on Tue, Aug 21, 2012 at 12:01:28 +0100: > > > You copy and paste the error message into the email for us. > > > > I meant to say: "You forgot to copy" > I found the correct ulimit setting to enable core dumps, and was able to > use that to obtain a stack trace - see attached. > > According to gdb, the failing function call is this memcmp(), called > from svn_dirent_skip_ancestor(). > > 1440 if (0 != memcmp(parent_dirent, child_dirent, len)) > 1441 return NULL; /* parent_dirent is no ancestor of child_dirent */ > > The string arguments are evident from the stack trace. > parent_dirent=0xb47faeb0 > "/auspar/trunk/Modules/VirtualShip/Trunk/RadarGeometry/RadarGeometryManager/Trunk/Test/TestApplication/Build/Win32-x86-MULTI/DevelopmentShared.gpj" > child_dirent=0xb468ef80 > "/auspar/trunk/Modules/VirtualShip/Trunk/RadarGeometry/RadarGeometryManager/Trunk/Test/TestApplication/Build/Win32-x86-MULTI" > len == 147 > > Strangely enough, parent and child seem to back back to front. I am > assuming the memcmp is running off the end of child_dirent, and causing > my failure. > This was built with gcc 4.6.3-1ubuntu5, using '-O2 -g' > > I will try setting a breakpoint here, and looking for a consistent > pattern. > OK, I set the breakpoint, and ran it. In all cases, either the parent_dirent is identical to child_dirent, or the parent_dirent is longer than the child_dirent ! I expect that the memcmp fails based on the vagaries of dynamic memory allocation, and how much usable space is left at the end of the shorter string. I still don't know if this is unique to my build, or a broader problem.
-- Tony Butt <tony.b...@cea.com.au> CEA Technologies