This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] Fix leaks when pruning inferiors.


On Sun,  1 Dec 2019 16:52:20 +0100
Philippe Waroquiers <philippe.waroquiers@skynet.be> wrote:

> Valgrind detects various inferior related leaks, such as:
>   ==31877== 5,530 (56 direct, 5,474 indirect) bytes in 1 blocks are definitely lost in loss record 7,131 of 7,355
>   ==31877==    at 0x4C2E18C: calloc (vg_replace_malloc.c:760)
>   ==31877==    by 0x23E580: xcalloc (alloc.c:100)
>   ==31877==    by 0x4794A9: xcnewvec<void*> (poison.h:158)
>   ==31877==    by 0x4794A9: registry_alloc_data(registry_data_registry*, registry_fields*) (registry.c:51)
>   ==31877==    by 0x3A537C: inferior_alloc_data (inferior.c:43)
>   ==31877==    by 0x3A537C: inferior::inferior(int) (inferior.c:92)
>   ==31877==    by 0x3A5426: add_inferior_silent(int) (inferior.c:98)
>   ==31877==    by 0x3A5530: add_inferior(int) (inferior.c:122)
>   ...
> 
> Origin of the leaks is in prune_inferiors: prune_inferiors is first removing
> the inferior to prune from the inferior list, then calls delete_inferior.
> But delete_inferior will only really destroy the inferior when it finds
> it into the inferior list.
> As delete_inferior is removing the inferior to delete from the inferior list,
> ensure prune_inferiors only calls delete_inferior, without touching the
> inferior list.
> 
> gdb/ChangeLog
> YYYY-MM-DD  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
> 	* inferior.c (prune_inferiors):  Only call delete_inferior,
> 	Do not modify the inferior list.

Okay.

(Though I'd rather see a semicolon or a period in place of the comma in
the ChangeLog entry.)

Kevin


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]