Memory leak reading frame register during inferior event handling
authorJoel Brobecker <brobecker@adacore.com>
Fri, 13 Feb 2015 10:57:29 +0000 (11:57 +0100)
committerJoel Brobecker <brobecker@adacore.com>
Wed, 20 May 2015 07:37:55 +0000 (09:37 +0200)
commit0b6e5e108599217c106f5fb63cd8ad7ec7028c5c
treec327d4752ee7c3f4dd49301c12d447b3ba650093
parent1da0522ea716f4c679cc1fe85c39459417ec2749
Memory leak reading frame register during inferior event handling

When using a conditional breakpoint where the condition evaluated
to false a large number of times before the program stopped,
a user reported that GDB's memory consumption was growing very
quickly until it ran out of memory.

The problem was tracked down to temporary struct values being created
each time the program stops and handles an inferior event.  Because
the breakpoint condition usually evaluates to false, there can be
a fairly large number of such events to be handled before we eventually
return the prompt to the user (which is when we would normally purge
such values).

This patch fixes the issue by making sure that handle_inferior_event
releases all new values created during its execution.

gdb/ChangeLog:

        * infrun.c (handle_inferior_event_1): Renames handle_inferior_event.
        (handle_inferior_event): New function.
gdb/ChangeLog
gdb/infrun.c