From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10317 invoked by alias); 29 Aug 2002 22:40:21 -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 10287 invoked from network); 29 Aug 2002 22:40:19 -0000 Received: from unknown (HELO walton.kettenis.dyndns.org) (62.163.169.250) by sources.redhat.com with SMTP; 29 Aug 2002 22:40:19 -0000 Received: from elgar.kettenis.dyndns.org (elgar.kettenis.dyndns.org [192.168.0.2]) by walton.kettenis.dyndns.org (8.12.5/8.12.5) with ESMTP id g7TMeBJt000381; Fri, 30 Aug 2002 00:40:11 +0200 (CEST) (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.5/8.12.5) with ESMTP id g7TMeBq8000419; Fri, 30 Aug 2002 00:40:11 +0200 (CEST) (envelope-from kettenis@elgar.kettenis.dyndns.org) Received: (from kettenis@localhost) by elgar.kettenis.dyndns.org (8.12.5/8.12.5/Submit) id g7TMeAeg000416; Fri, 30 Aug 2002 00:40:10 +0200 (CEST) To: Christopher Faylor Cc: gdb@sources.redhat.com Subject: Re: SEGV on display /i $pc with i386 target References: <20020829055103.GA26149@redhat.com> From: Mark Kettenis Date: Thu, 29 Aug 2002 15:40:00 -0000 In-Reply-To: Christopher Faylor's message of "Thu, 29 Aug 2002 01:51:03 -0400" Message-ID: <86k7m9p9v9.fsf@elgar.kettenis.dyndns.org> X-SW-Source: 2002-08/txt/msg00406.txt.bz2 Christopher Faylor writes: > I just noticed a SEGV whenever I do a 'display /i $pc' on cygwin. > > I tried building a gdb for linux to see what was going wrong on > cygwin but it isn't much better: > > (top-gdb) display /i $pc > 1: x/i $(null) 0x8072f42 : push $0x6 > > The problem comes from the fact that, while gdb understands that > $pc == $eip, it doesn't seem to know how to rename $pc to $eip > when it is outputting the register name. You can get the same > behavior by doing something like 'display /i $ps', too (even > if that doesn't make sense it shouldn't SEGV). Hmm, this defenitely used to work in the past. Does anybody have an idea what broke it? > The simplest way to fix this is to extend the i386_register_names array > to include builtin register names, however, maybe the right way to fix > this is to add something to builtin-reg.c. I suspect this problem isn't i386-specific, so extending i386_register_names seems to be the wrong approach to me. > I noticed that i386_register_names seems to have 41 elements while > the sum of NUM_REGS + NUM_PSEUDO_REGS == 40. Is that intentional? Sort of. In the current situation, Depending on whether your target supports the SSE registers NUM_REGS will be either 32 or 41. Since NUM_PSEUDO_REGS is 6, and 32 + 6 = 40. Perhaps this is a good moment to warn you about an implication of multi-arching the i386 for Cygwin: the Cygwin targets don't support SSE anymor, since we use the "Unknown" OS/ABI for Cygwin right now. I doubt whether this is what you want. You probably want to introduce some sort of Cygwin or Win32 OS/ABI that includes those registers. Mark