From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25975 invoked by alias); 21 Mar 2003 11:35:00 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 25968 invoked from network); 21 Mar 2003 11:34:59 -0000 Received: from unknown (HELO kerberos.suse.cz) (195.47.106.10) by sources.redhat.com with SMTP; 21 Mar 2003 11:34:59 -0000 Received: from chimera.suse.cz (chimera.suse.cz [10.20.0.2]) by kerberos.suse.cz (SuSE SMTP server) with ESMTP id 2ADBA59D348; Fri, 21 Mar 2003 12:34:59 +0100 (CET) Received: from suse.cz (naga.suse.cz [10.20.1.16]) by chimera.suse.cz (8.11.0/8.11.0/SuSE Linux 8.11.0-0.4) with ESMTP id h2LBYwh20440; Fri, 21 Mar 2003 12:34:59 +0100 X-Authentication-Warning: chimera.suse.cz: Host naga.suse.cz [10.20.1.16] claimed to be suse.cz Message-ID: <3E7AF8E2.7000001@suse.cz> Date: Fri, 21 Mar 2003 11:35:00 -0000 From: Michal Ludvig Organization: SuSE CR User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3) Gecko/20030312 X-Accept-Language: cs, cz, en MIME-Version: 1.0 To: Mark Kettenis Cc: gdb Subject: Re: Call i386_frame_p() only for 32bits References: <3E7AE4A3.60601@suse.cz> <200303211105.h2LB5Lrc000364@elgar.kettenis.dyndns.org> In-Reply-To: <200303211105.h2LB5Lrc000364@elgar.kettenis.dyndns.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2003-03/txt/msg00311.txt.bz2 Mark Kettenis wrote: > Date: Fri, 21 Mar 2003 11:08:35 +0100 > From: Michal Ludvig > > Hi all, > I have this problem with i386newframe-branch on x86-64: > In i386-tdep.c:i386_gdbarch_init() there is always called the line > > frame_unwind_append_predicate (gdbarch, i386_frame_p); > > regardless if the inferior is 32b or 64b (of course, it isn't yet known > at this time). This is obviously wrong, because what i386_frame_p() > gives out doesn't make sense for 64b processes. > > How can I achieve that i386_frame_p() is registered only for 32b > processes and x86_64_frame_p() only for 64b ones? > > The code is laid out in such a way that if you call > > frame_unwind_append_preducte (gdbarch, x86_64_frame_p) > > in your x86_64-specific init_abi functions, and make sure you never > return NULL, GDB should never use the 32-bit i386 unwinder. That's the problem - untill x86-64 is completely prepared for this new stuff, i386_frame_p always overrides the older behaviour. Michal Ludvig -- * SuSE CR, s.r.o * mludvig@suse.cz * (+420) 296.545.373 * http://www.suse.cz