From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19118 invoked by alias); 14 Apr 2014 12:12:34 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 19101 invoked by uid 89); 14 Apr 2014 12:12:32 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 X-HELO: plane.gmane.org Received: from plane.gmane.org (HELO plane.gmane.org) (80.91.229.3) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Mon, 14 Apr 2014 12:12:30 +0000 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1WZfkO-0002AO-Fx for gdb-patches@sourceware.org; Mon, 14 Apr 2014 14:12:24 +0200 Received: from pluto.bordeaux.inria.fr ([193.50.110.57]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 14 Apr 2014 14:12:24 +0200 Received: from ludo by pluto.bordeaux.inria.fr with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 14 Apr 2014 14:12:24 +0200 To: gdb-patches@sourceware.org From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: [PATCH 9/9] Remove a useless Guile finalizer Date: Mon, 14 Apr 2014 12:12:00 -0000 Message-ID: <87tx9wjejo.fsf@gnu.org> References: <1397060028-18158-1-git-send-email-wingo@igalia.com> <1397060028-18158-10-git-send-email-wingo@igalia.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 25 Germinal an 222 de la =?utf-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0xEA52ECF4 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 83C4 F8E5 10A3 3B4C 5BEA D15D 77DD 95E2 EA52 ECF4 X-OS: x86_64-unknown-linux-gnu User-Agent: Gnus/5.130007 (Ma Gnus v0.7) Emacs/24.3 (gnu/linux) X-IsSubscribed: yes X-SW-Source: 2014-04/txt/msg00253.txt.bz2 Doug Evans skribis: > Andy Wingo writes: > >> * gdb/guile/scm-symtab.c (stscm_free_sal_smob): Remove useless free >> function. (This was the only useless free function.) >> --- >> gdb/guile/scm-symtab.c | 14 -------------- >> 1 file changed, 14 deletions(-) >> >> diff --git a/gdb/guile/scm-symtab.c b/gdb/guile/scm-symtab.c >> index 8910973..876bf64 100644 >> --- a/gdb/guile/scm-symtab.c >> +++ b/gdb/guile/scm-symtab.c >> @@ -386,19 +386,6 @@ gdbscm_symtab_static_block (SCM self) >> >> /* Administrivia for sal (symtab-and-line) smobs. */ >> >> -/* The smob "free" function for . */ >> - >> -static size_t >> -stscm_free_sal_smob (SCM self) >> -{ >> - sal_smob *s_smob = (sal_smob *) SCM_SMOB_DATA (self); >> - >> - /* Not necessary, done to catch bugs. */ >> - s_smob->symtab_scm = SCM_UNDEFINED; >> - >> - return 0; >> -} >> - >> /* The smob "print" function for . */ >> >> static int >> @@ -692,7 +679,6 @@ gdbscm_initialize_symtabs (void) >> scm_set_smob_print (symtab_smob_tag, stscm_print_symtab_smob); >> >> sal_smob_tag = gdbscm_make_smob_type (sal_smob_name, sizeof (sal_smob)); >> - scm_set_smob_free (sal_smob_tag, stscm_free_sal_smob); >> scm_set_smob_print (sal_smob_tag, stscm_print_sal_smob); >> >> gdbscm_define_functions (symtab_functions, 1); > > How useful is valgrind with Guile's GC? I think there’s a suppression file for libgc floating around, but I haven’t really used it myself. > And given that we have this hook, it seems a shame to just throw out > such useful protections against use-after-free (I'm pretty sure early on > I found one bug with them), especially given the subtleties with GC, > and gdb's extensive need to have references to SCM objects from outside > GC-controlled code. IMO it doesn’t help much to have finalizers (free functions) like this. For debugging, you could always use a guardian, which has the same effect. > If we're going to have a rule that such code is disallowed, > there is more such code that needs to be removed besides the above > (grep for "catch bugs"). > > But is this something we want? > At this stage in gdb+guile's development, I like the protection, > and the cost is within epsilon of zero (to me anyway). Again, I don’t think it provides any significant protection or debugging aid. Thanks, Ludo’.