This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Destroy allocated values when exiting GDB
- From: Sergio Durigan Junior <sergiodj at redhat dot com>
- To: Pedro Alves <palves at redhat dot com>
- Cc: Tom Tromey <tom at tromey dot com>, Tom Tromey <tromey at adacore dot com>, gdb-patches at sourceware dot org
- Date: Mon, 01 Apr 2019 10:59:00 -0400
- Subject: Re: [PATCH] Destroy allocated values when exiting GDB
- References: <20190320140846.13031-1-tromey@adacore.com> <87r2azkhmq.fsf@redhat.com> <87mulnkcab.fsf@redhat.com> <87a7hjj7aw.fsf@tromey.com> <f4df53c8-67b5-d910-348b-5d50226ccb35@redhat.com> <87ef6uj408.fsf@tromey.com> <87mulia94w.fsf@redhat.com> <87sgv9bwyg.fsf@tromey.com> <87tvfpr55a.fsf@redhat.com> <87y351mhki.fsf@redhat.com> <87sgv81nld.fsf@tromey.com> <5a2d4016-9e4d-dc18-8c3a-2c9ecf214c94@redhat.com> <87lg0xwe3t.fsf_-_@redhat.com> <369707f4-be00-5234-cbc6-5a5d7b1c5204@redhat.com>
On Monday, April 01 2019, Pedro Alves wrote:
> On 03/29/2019 09:43 PM, Sergio Durigan Junior wrote:
>
>>
>> diff --git a/gdb/top.c b/gdb/top.c
>> index b10b0649e9..ffbe8e517f 100644
>> --- a/gdb/top.c
>> +++ b/gdb/top.c
>> @@ -1672,6 +1672,9 @@ quit_force (int *exit_arg, int from_tty)
>> }
>> END_CATCH
>>
>> + /* Destroy any values currently allocated. */
>> + finalize_values ();
>
> I think that someone reading this without context may not realize
> why we need to do that. How about extending the comment, like:
>
> /* Destroy any values currently allocated now instead of leaving it
> to global destructors, because that may be too late. For
> example, the destructors of xmethod values call into the Python
> runtime, which is finalized via a final cleanup. */
Done.
>> diff --git a/gdb/value.h b/gdb/value.h
>> index d3905cc354..7853950ca3 100644
>> --- a/gdb/value.h
>> +++ b/gdb/value.h
>> @@ -1189,4 +1189,8 @@ extern struct value *call_xmethod (struct value *method,
>> extern int value_union_variant (struct type *union_type,
>> const gdb_byte *contents);
>>
>> +/* Destroy the values currently allocated. This is mostly called when
>> + GDB is exiting (e.g., on quit_force). */
>
> s/mostly//
Done.
>> +extern void finalize_values ();
>> +
>> #endif /* !defined (VALUE_H) */
>
> LGTM with those changes.
Thanks for the review. Pushed:
9d1447e09d4aa673826039321163b5a684e8e043
--
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF 31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
http://sergiodj.net/