From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15288 invoked by alias); 28 Nov 2002 22:37:25 -0000 Mailing-List: contact guile-gtk-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: guile-gtk-owner@sources.redhat.com Received: (qmail 15281 invoked from network); 28 Nov 2002 22:37:23 -0000 Received: from unknown (HELO mail.tiscali.cz) (213.235.135.70) by sources.redhat.com with SMTP; 28 Nov 2002 22:37:23 -0000 Received: from hobitin.ucw.cz (212.11.106.61) by mail.tiscali.cz (6.0.044) id 3DC10A63005D6919; Thu, 28 Nov 2002 23:35:44 +0100 Received: from 0rfelyus by hobitin.ucw.cz with local (Exim 3.36 #1 (Debian)) id 18HXFL-0000uU-00; Thu, 28 Nov 2002 23:34:59 +0100 To: alto_stan@wanadoo.be Cc: Neil Jerram , guile-gtk@sources.redhat.com, guile-user@gnu.org Subject: Re: general debugging question + Segfault in guile-gtk References: <5.1.1.6.0.20021121085949.03260e08@pop.wanadoo.be> <87d6oxfi6t.fsf@zagadka.ping.de> <20021128093703.1fe573c2.alto_stan@wanadoo.be> <20021128184234.5c3bc15b.alto_stan@wanadoo.be> From: Daniel Skarda <0rfelyus@ucw.cz> Date: Thu, 28 Nov 2002 14:37:00 -0000 In-Reply-To: <20021128184234.5c3bc15b.alto_stan@wanadoo.be> (Stan Pinte's message of "Thu, 28 Nov 2002 18:42:34 +0100") Message-ID: User-Agent: Gnus/5.090008 (Oort Gnus v0.08) Emacs/20.7 (i386-debian-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2002-q4/txt/msg00018.txt.bz2 Stan Pinte writes: > Program received signal SIGSEGV, Segmentation fault. > [Switching to Thread 1024 (LWP 1112)] > 0x4039c174 in sgtk_arg_cleanup (a=0xbfffe64c, obj=0x2174) at guile-gtk.c:2026 > 2026 if (BOXED_INFO (obj)->cleanup) > (gdb) bt > #0 0x4039c174 in sgtk_arg_cleanup (a=0xbfffe64c, obj=0x2174) at guile-gtk.c:2026 Oops, thats my code, fresh new code.... Mea culpa. Aha! 0x2174 is #f (SCM_BOOL_F) (no, I am not a wizard, I am using gdb.... :-) GuileGtk converts callbacks parameters to scheme types (according to information from Gtk). Than it tries to clean-up data - and I forgot that structures can also be converted to #f (which is not a boxed type). if (BOXED_INFO (obj)->cleanup) should be replaced by if (BOXED_P (obj) && BOXED_INFO(obj)->cleanup) Hope that this stops your problems. I am going to commit the fix to CVS ASAP. Thank you for bug report, 0.