Related articles |
---|
[4 earlier articles] |
Re: Memory leak in flex generated file Markus.Elfring@web.de (2005-10-26) |
Re: Memory leak in flex generated file haberg@math.su.se (2005-10-27) |
Re: Memory leak in flex generated file haberg@math.su.se (2005-10-27) |
Re: Memory leak in flex generated file johnmillaway@yahoo.com (John Millaway) (2005-10-27) |
Re: Memory leak in flex generated file johnmillaway@yahoo.com (John Millaway) (2005-10-29) |
Memory leak in flex generated file pierreir@look.ca (Pierre Innocent) (2007-08-20) |
Re: Memory leak in flex generated file jnvolkov@gmail.com (commander) (2007-08-21) |
From: | commander <jnvolkov@gmail.com> |
Newsgroups: | comp.compilers |
Date: | Tue, 21 Aug 2007 01:09:52 -0700 |
Organization: | Compilers Central |
References: | 07-08-059 |
Keywords: | lex, storage |
Posted-Date: | 21 Aug 2007 22:27:30 EDT |
> I came across with essentially the same problem.
> Here is a section of the valgrind log:
>
> ==17231==
> ==17231== 2,371,104 (11,472 direct, 2,359,632 indirect) bytes in 239
> blocks are definitely lost in loss record 51 of 66
> ==17231== at 0x401C627: malloc (vg_replace_malloc.c:149)
> ==17231== by 0x80F3842: indexeralloc(unsigned) (lex.indexer.c:17657)
> ==17231== by 0x80F4041: indexer_create_buffer(_IO_FILE*, int)
> (lex.indexer.c:17186)
> ==17231== by 0x80F40FD: indexerrestart(_IO_FILE*) (lex.indexer.c:17126)
> ==17231== by 0x80F9128: Indexer::scanFile(String const&, uint32_t)
> (indexer.cc:1068)
> ==17231== by 0x81096A6: main (indexer.cc:2542)
> ==17231==
> ==17231==
> ==17231== 1,573,152 bytes in 98 blocks are possibly lost in loss record
> 65 of 66
> ==17231== at 0x401C627: malloc (vg_replace_malloc.c:149)
> ==17231== by 0x80F3842: indexeralloc(unsigned) (lex.indexer.c:17657)
> ==17231== by 0x80F4072: indexer_create_buffer(_IO_FILE*, int)
> (lex.indexer.c:17195)
> ==17231== by 0x80F40FD: indexerrestart(_IO_FILE*) (lex.indexer.c:17126)
> ==17231== by 0x80F9128: Indexer::scanFile(String const&, uint32_t)
> (indexer.cc:1068)
> ==17231== by 0x81096A6: main (indexer.cc:2542)
> ==17231==
> ==17231== LEAK SUMMARY:
> ==17231== definitely lost: 11,532 bytes in 241 blocks.
> ==17231== indirectly lost: 2,360,292 bytes in 161 blocks.
> ==17231== possibly lost: 1,678,544 bytes in 570 blocks.
> ==17231== still reachable: 1,688,164 bytes in 4,486 blocks.
> ==17231== suppressed: 0 bytes in 0 blocks.
> ==17231== Reachable blocks (those to which a pointer was found) are not
> shown.
> ==17231== To see them, rerun with: --leak-check=full --show-reachable=yes
what is your flex version? what language (C or C++) the generated
scanner is? for C++ I suggested the solution here
http://sourceforge.net/mailarchive/forum.php?thread_name=207941110.1170153705.161019936.16611%40mcgi25.rambler.ru&forum_name=flex-help
For C based scanner you should invoke yy_destroy_buffer as far as I
remember.
Regards.
Yuriy
Return to the
comp.compilers page.
Search the
comp.compilers archives again.