[Seqan-dev] SeqAn with valgrind


Hi all,

Is valgrind a tool that people use with SeqAn much? Is SeqAn free of any
spurious (or not so spurious) leaks? Does anyone have a valgrind
suppressions file I might find useful with gcc-4.6? For instance I have
the following reported by "valgrind --leak-check=full" when using a
TopDown iterator with an ESA. I'm guessing it is not a problem but I'd
like to see what others think. Getting rid of any valgrind warnings
generated by SeqAn will help me locate any bugs I might have in my code.

Thanks again for a fantastic library,
John.

==16613== Memcheck, a memory error detector
==16613== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==16613== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==16613== Command: /usr/bin/python /usr/bin/nosetests ../cacto/
==16613==
..==16613== Conditional jump or move depends on uninitialised value(s)
==16613==    at 0x9FD1E6F: void
seqan::createChildtab<seqan::String<unsigned long, seqan::Alloc<void> >,
seqan::String<unsigned long, seqan::Alloc<void> >
>(seqan::String<unsigned long, seqan::Alloc<void> >&, seq
an::String<unsigned long, seqan::Alloc<void> > const&)
(index_childtab.h:261)
==16613==    by 0x9FC6278: bool
seqan::indexCreate<seqan::StringSet<seqan::String<seqan::SimpleType<unsigned
char, seqan::Dna_>, seqan::Alloc<void> >,
seqan::Owner<seqan::Tag<seqan::Default_> > >, seqan::IndexEsa
<void>
>(seqan::Index<seqan::StringSet<seqan::String<seqan::SimpleType<unsigned
char, seqan::Dna_>, seqan::Alloc<void> >,
seqan::Owner<seqan::Tag<seqan::Default_> > >, seqan::IndexEsa<void> >&,
seqan::Tag<seqan::
FibreChildtab_>, seqan::Childtab) (index_shims.h:608)
==16613==    by 0x9FB9373: bool
seqan::indexCreate<seqan::StringSet<seqan::String<seqan::SimpleType<unsigned
char, seqan::Dna_>, seqan::Alloc<void> >,
seqan::Owner<seqan::Tag<seqan::Default_> > >, seqan::IndexEsa
<void>,
seqan::FibreChildtab_>(seqan::Index<seqan::StringSet<seqan::String<seqan::SimpleType<unsigned
char, seqan::Dna_>, seqan::Alloc<void> >,
seqan::Owner<seqan::Tag<seqan::Default_> > >, seqan::IndexEsa<void>
>&, seqan::Tag<seqan::FibreChildtab_>) (index_shims.h:615)
==16613==    by 0x9FACCA2: bool
seqan::indexRequire<seqan::StringSet<seqan::String<seqan::SimpleType<unsigned
char, seqan::Dna_>, seqan::Alloc<void> >,
seqan::Owner<seqan::Tag<seqan::Default_> > >, seqan::IndexEs
a<void>,
seqan::FibreChildtab_>(seqan::Index<seqan::StringSet<seqan::String<seqan::SimpleType<unsigned
char, seqan::Dna_>, seqan::Alloc<void> >,
seqan::Owner<seqan::Tag<seqan::Default_> > >, seqan::IndexEsa<void>
 >&, seqan::Tag<seqan::FibreChildtab_>) (index_shims.h:664)
==16613==    by 0x9FA0B93: void
seqan::_indexRequireTopDownIteration<seqan::StringSet<seqan::String<seqan::SimpleType<unsigned
char, seqan::Dna_>, seqan::Alloc<void> >,
seqan::Owner<seqan::Tag<seqan::Default_> >
>,
void>(seqan::Index<seqan::StringSet<seqan::String<seqan::SimpleType<unsigned
char, seqan::Dna_>, seqan::Alloc<void> >,
seqan::Owner<seqan::Tag<seqan::Default_> > >, seqan::IndexEsa<void> >&)
(index_esa_base.h:
303)
==16613==    by 0x9F966DA:
seqan::Iter<seqan::Index<seqan::StringSet<seqan::String<seqan::SimpleType<unsigned
char, seqan::Dna_>, seqan::Alloc<void> >,
seqan::Owner<seqan::Tag<seqan::Default_> > >, seqan::IndexEs
a<void> >, seqan::VSTree<seqan::TopDown<seqan::Preorder> >
>::Iter(seqan::Index<seqan::StringSet<seqan::String<seqan::SimpleType<unsigned
char, seqan::Dna_>, seqan::Alloc<void> >, seqan::Owner<seqan::Tag<seqan::D
efault_> > >, seqan::IndexEsa<void> >&) (index_esa_stree.h:133)