Assertion failure in debugging code

José Fonseca jose.r.fonseca at gmail.com
Fri Aug 24 04:01:04 PDT 2012


Hi Carl,

These regions appear to be merely contiguous and not really intersect.

It looks like there is a bug in either of these functions calls

    RegionMap::iterator start = lowerBound(address);
    RegionMap::iterator stop = upperBound(address + size);

as they should return iterator such that start == stop, that is, an empty set.

Jose

On Thu, Aug 23, 2012 at 9:45 PM, Carl Worth <cworth at cworth.org> wrote:
> Hi José,
>
> I've got a trace that's tripping up replay with the following:
>
>     warning: region 0xea021000-0xea029000 intersects existing region 0xea029000-0xea041000
>     glretrace: /home/cworth/src/apitrace/retrace/retrace_swizzle.cpp:120: void retrace::addRegion(long long unsigned int, void*, long long unsigned int): Assertion `intersects(it, address, size)' failed.
>
> I'm not quite sure what to make of this since the assert is within a
> warning (all within an NDEBUG block).
>
> The warning claims that the regions intersect, but the intersects()
> function disagrees. Meanwhile, depending on how the boundaries of these
> regions are defined, I'm not sure if they intersect.
>
> Also, this trace was created by doing some manual trimming, which of
> course may have invalidated something that the code is trying to check
> here.
>
> Of course, I can get the trace to replay (apparently successfully) by
> simply omitting all of this warning/assertion code.
>
> I guess my question comes down to whether we're confident that the
> current code is correct and desired. I can't make much sense of it
> myself, (without diving in quite a bit more).
>
> -Carl
>
> --
> carl.d.worth at intel.com
>
> _______________________________________________
> apitrace mailing list
> apitrace at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/apitrace
>


More information about the apitrace mailing list