Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Memory leaks/errors in Forcer #250

Closed
tueda opened this issue Dec 7, 2017 · 1 comment
Closed

Memory leaks/errors in Forcer #250

tueda opened this issue Dec 7, 2017 · 1 comment

Comments

@tueda
Copy link
Collaborator

tueda commented Dec 7, 2017

With the example in Forcer 1.0, valgrind --leak-check=full vorm example.frm detects some memory leaks

==6515== Memcheck, a memory error detector
==6515== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==6515== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==6515== Command: vorm example.frm
==6515== 
FORM 4.2.0 (Nov 30 2017, v4.2.0-24-g1514492) 64-bits  Run: Thu Dec  7 14:23:11 2017

...

  24.91 sec out of 24.91 sec
==6515== 
==6515== HEAP SUMMARY:
==6515==     in use at exit: 462,708,280 bytes in 7,195 blocks
==6515==   total heap usage: 71,559 allocs, 64,364 frees, 543,302,041 bytes allocated
==6515== 
==6515== 32 bytes in 2 blocks are definitely lost in loss record 34 of 203
==6515==    at 0x4C2AB96: malloc (vg_replace_malloc.c:299)
==6515==    by 0x4FF9B8: Malloc1 (tools.c:2230)
==6515==    by 0x4FF9FC: strDup1 (tools.c:1816)
==6515==    by 0x4AC6A1: DoProcedure (pre.c:3880)
==6515==    by 0x4AF39E: PreProInstruction (pre.c:1156)
==6515==    by 0x4AFF06: PreProcessor (pre.c:931)
==6515==    by 0x4E8ECF: main (startup.c:1605)
==6515== 
==6515== 9,928 bytes in 2 blocks are definitely lost in loss record 157 of 203
==6515==    at 0x4C2AB96: malloc (vg_replace_malloc.c:299)
==6515==    by 0x4FF9B8: Malloc1 (tools.c:2230)
==6515==    by 0x4AC0C9: PreLoad (pre.c:4132)
==6515==    by 0x4AC616: DoProcedure (pre.c:3867)
==6515==    by 0x4AF39E: PreProInstruction (pre.c:1156)
==6515==    by 0x4AFF06: PreProcessor (pre.c:931)
==6515==    by 0x4E8ECF: main (startup.c:1605)
==6515== 
==6515== LEAK SUMMARY:
==6515==    definitely lost: 9,960 bytes in 4 blocks
==6515==    indirectly lost: 0 bytes in 0 blocks
==6515==      possibly lost: 0 bytes in 0 blocks
==6515==    still reachable: 462,698,320 bytes in 7,191 blocks
==6515==         suppressed: 0 bytes in 0 blocks
==6515== Reachable blocks (those to which a pointer was found) are not shown.

In addition to this, for TFORM, valgrind tvorm -w4 example.frm detects memory errors

==6845== Memcheck, a memory error detector
==6845== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==6845== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==6845== Command: tvorm -w4 example.frm
==6845== 
TFORM 4.2.0 (Nov 30 2017, v4.2.0-24-g1514492) 64-bits 4 workers  Run: Thu Dec  7 14:27:00 2017

...

Time =      15.09 sec    Generated terms =          2
               F         Terms in output =          2
       load-topologies-3 Bytes used      =        552

Time =      15.12 sec    Generated terms =          2
               F         Terms in output =          2
           recognition-1 Bytes used      =       1000
==6845== Invalid read of size 4
==6845==    at 0x45338D: DoModDollar (module.c:682)
==6845==    by 0x45370C: DoModLocal (module.c:605)
==6845==    by 0x4526B1: CoModuleOption (module.c:171)
==6845==    by 0x427C05: CompileStatement (compiler.c:634)
==6845==    by 0x4B884B: PreProcessor (pre.c:1045)
==6845==    by 0x4F5233: main (startup.c:1605)
==6845==  Address 0x70702bd0 is 0 bytes after a block of size 96 alloc'd
==6845==    at 0x4C2AB96: malloc (vg_replace_malloc.c:299)
==6845==    by 0x50CB63: Malloc1 (tools.c:2230)
==6845==    by 0x4EF903: EndSort (sort.c:741)
==6845==    by 0x4306C7: CatchDollar (dollar.c:117)
==6845==    by 0x4B8883: PreProcessor (pre.c:1050)
==6845==    by 0x4F5233: main (startup.c:1605)
==6845== 

Time =      15.57 sec    Generated terms =          2
               F         Terms in output =          2
          recognition-2a Bytes used      =       1036
@tueda
Copy link
Collaborator Author

tueda commented Dec 13, 2017

Actually they are 2 different bugs and so it is better to consider them separately.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant