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.butt_at_cea.com.au>
CEA Technologies
Received on 2012-08-23 03:02:03 CEST