From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14213 invoked by alias); 21 Mar 2003 11:05:31 -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 14202 invoked from network); 21 Mar 2003 11:05:29 -0000 Received: from unknown (HELO walton.kettenis.dyndns.org) (62.163.169.212) by sources.redhat.com with SMTP; 21 Mar 2003 11:05:29 -0000 Received: from elgar.kettenis.dyndns.org (elgar.kettenis.dyndns.org [192.168.0.2]) by walton.kettenis.dyndns.org (8.12.6/8.12.5) with ESMTP id h2LB5L2v000247; Fri, 21 Mar 2003 12:05:21 +0100 (CET) (envelope-from kettenis@elgar.kettenis.dyndns.org) Received: from elgar.kettenis.dyndns.org (localhost [127.0.0.1]) by elgar.kettenis.dyndns.org (8.12.6/8.12.6) with ESMTP id h2LB5LBi000367; Fri, 21 Mar 2003 12:05:21 +0100 (CET) (envelope-from kettenis@elgar.kettenis.dyndns.org) Received: (from kettenis@localhost) by elgar.kettenis.dyndns.org (8.12.6/8.12.6/Submit) id h2LB5Lrc000364; Fri, 21 Mar 2003 12:05:21 +0100 (CET) Date: Fri, 21 Mar 2003 11:05:00 -0000 Message-Id: <200303211105.h2LB5Lrc000364@elgar.kettenis.dyndns.org> From: Mark Kettenis To: mludvig@suse.cz CC: ac131313@redhat.com, gdb@sources.redhat.com In-reply-to: <3E7AE4A3.60601@suse.cz> (message from Michal Ludvig on Fri, 21 Mar 2003 11:08:35 +0100) Subject: Re: Call i386_frame_p() only for 32bits References: <3E7AE4A3.60601@suse.cz> X-SW-Source: 2003-03/txt/msg00310.txt.bz2 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. Mark