[gdal-dev] Trying to debug a GDAL crash in "GDALClose(hDataset); "
Kurt Schwehr
schwehr at gmail.com
Fri Nov 13 20:05:38 PST 2015
nLockCount should be set by
https://trac.osgeo.org/gdal/browser/trunk/gdal/gcore/gdal_priv.h#L598
https://trac.osgeo.org/gdal/browser/trunk/gdal/port/cpl_atomic_ops.cpp#L56
which uses InterlockedCompareExchange to change it.
Can you give the whole stack trace?
On Fri, Nov 13, 2015 at 6:47 PM, Joaquim Luis <jluis at ualg.pt> wrote:
> Hi,
>
> I'm having strange crashes in GDAL (SVN) when called via GMT. The crashes
> occur at a call to
>
> GDALClose(hDataset);
>
> Now, this is only occurs when I try to read a sub-region of a grid but
> those are GMT details.
> It doesn't happen to colleagues on OSX but they are using gdal 1.11. Can't
> say that's the reason but this used to work for me as well on Windows (I
> should know because I wrote that code).
>
> I built a GDAL debug and can see that the crash happens in
> cpl_atomic_ops.cpp
>
> int CPLAtomicCompareAndExchange(volatile int* ptr, int oldval, int newval)
> {
> return (LONG)InterlockedCompareExchange((volatile LONG*)(ptr),
> (LONG)newval, (LONG)oldval) == (LONG)oldval;
> }
>
> because the 'ptr' is invalid. That function is called by
> gdalrasterblock.cpp
>
> GDALRasterBlock::DropLockForRemovalFromStorage()
>
> if( CPLAtomicCompareAndExchange(&nLockCount, 0, -1) )
>
> and the debugger tells me that
>
> nLockCount <Unable to read memory>
>
> and here I'm lost. Where is nLockCount supposed to be set?
>
> Thanks
>
> Joaquim
> _______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/gdal-dev
--
--
http://schwehr.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20151113/15270d1d/attachment-0001.html>
More information about the gdal-dev
mailing list