[geos-devel] [GEOS] #923: Memory leak in GEOSNode
GEOS
geos-trac at osgeo.org
Tue Sep 18 15:18:05 PDT 2018
#923: Memory leak in GEOSNode
-------------------------+---------------------------
Reporter: Algunenano | Owner: geos-devel@…
Type: defect | Status: new
Priority: major | Milestone: 3.7.0
Component: Default | Version: master
Severity: Significant | Resolution:
Keywords: |
-------------------------+---------------------------
Comment (by cvvergara):
So, I am testing on the commit that merged to master: building with gcc
`git checkout -b test-try2 8a9600bb2e617c788fdcdad8eb9e9045925bbd23`
cleaned the build, and testing this
{{{
$ clang -fsanitize=address geos_leak.c -lgeos_c
-L/home/vicky/geos/vicky/build/lib -I/home/vicky/geos/vicky/build/include
-I /home/vicky/geos/vicky/include
geos_leak.c:1:10: fatal error:
'/home/vicky/geos/vicky/build/capi/geos_c.h' file not found
#include "/home/vicky/geos/vicky/build/capi/geos_c.h"
^
1 error generated.
}}}
As you can see I adjusted to what is being build.
Building again.
Here, the missing file has being created, but not the libraries (they are
on the process of building)
{{{
clang -fsanitize=address geos_leak.c -lgeos_c
-L/home/vicky/geos/vicky/build/lib -I/home/vicky/geos/vicky/build/include
-I /home/vicky/geos/vicky/include
/usr/bin/ld: cannot find -lgeos_c
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
}}}
So far so good (I think)
{{{
$clang -fsanitize=address geos_leak.c -lgeos_c
-L/home/vicky/geos/vicky/build/lib -I/home/vicky/geos/vicky/build/include
-I /home/vicky/geos/vicky/include
$ ./a.out
$
}}}
this didnt reproduce the problem
Now I am doing with valgrind:
{{{
$ gcc geos_leak.c -lgeos_c -L/home/vicky/geos/vicky/build/lib
-I/home/vicky/geos/vicky/build/include -I /home/vicky/geos/vicky/include
$ valgrind --leak-check=yes ./a.out
==761== Memcheck, a memory error detector
==761== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==761== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==761== Command: ./a.out
==761==
==761==
==761== HEAP SUMMARY:
==761== in use at exit: 73,848 bytes in 4 blocks
==761== total heap usage: 65 allocs, 61 frees, 81,840 bytes allocated
==761==
==761== LEAK SUMMARY:
==761== definitely lost: 0 bytes in 0 blocks
==761== indirectly lost: 0 bytes in 0 blocks
==761== possibly lost: 0 bytes in 0 blocks
==761== still reachable: 73,848 bytes in 4 blocks
==761== suppressed: 0 bytes in 0 blocks
==761== Reachable blocks (those to which a pointer was found) are not
shown.
==761== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==761==
==761== For counts of detected and suppressed errors, rerun with: -v
==761== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
}}}
--
Ticket URL: <https://trac.osgeo.org/geos/ticket/923#comment:5>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).
More information about the geos-devel
mailing list