From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26585 invoked by alias); 5 Apr 2004 20:26:56 -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 26560 invoked from network); 5 Apr 2004 20:26:50 -0000 Received: from unknown (HELO tisch.mail.mindspring.net) (207.69.200.157) by sources.redhat.com with SMTP; 5 Apr 2004 20:26:50 -0000 Received: from user-119a90a.biz.mindspring.com ([66.149.36.10] helo=berman.michael-chastain.com) by tisch.mail.mindspring.net with esmtp (Exim 3.33 #1) id 1BAag9-0004iB-00; Mon, 05 Apr 2004 16:26:45 -0400 Received: by berman.michael-chastain.com (Postfix, from userid 502) id 104DB4B104; Mon, 5 Apr 2004 16:26:49 -0400 (EDT) To: drow@false.org, mec.gnu@mindspring.com, zack@codesourcery.com Subject: Re: gcc HEAD, stabs+, TYPE_CODE_INT problem Cc: ezannoni@redhat.com, gdb@sources.redhat.com, jimb@redhat.com Message-Id: <20040405202649.104DB4B104@berman.michael-chastain.com> Date: Mon, 05 Apr 2004 20:26:00 -0000 From: mec.gnu@mindspring.com (Michael Elizabeth Chastain) X-SW-Source: 2004-04/txt/msg00030.txt.bz2 Daniel's on the money, as usual. With these stabs: # gcc 3.3.3 .stabs "char:t(0,2)=r(0,2);0;127;",128,0,0,0 .stabs "__caddr_t:t(7,35)=(7,36)=*(0,2)",128,0,82,0 .stabs "s:G(7,36)",32,0,7,0 gdb prints "(7,36)" as "(0,2) *" and prints "(0,2)" as "char" because "char" is the name of the type, for an end result of "char *". I can see this happening by stepping through gdb. Also, if I hand-edit the first stab and change "char:t(0,2)=r(0,2)" to "foo_char:t(0,2)=r(0,2)", then the name of the type changes. With these stabs: # gcc HEAD .stabs "__caddr_t:t(3,44)=(3,45)=*(3,46)=r(3,46);0;127;",128,0,82,0 .stabs "s:G(3,45)",32,0,7,0 gdb prints "(3,45)" as "(3,46) *", but the type "(3,46)" has no name. Zack, this happened with your c-decl rewrite. I did the date-narrowing process and isolated it to this patch. gcc 3.3.3 (and gcc HEAD 20040323) emitted about 20 stab lines for the list from first_builtin_decl to last_builtin_decl. This provides gdb with names for "char", "int", "float", et cetera. gcc HEAD 20040330 no longer uses provides this list so there are no more stab lines for the builtin types. Can we change gcc to bring these builtins back? Either that, or we have to change gdb to recognize the unnamed ranges and interpolate names for them, which gets icky real fast for a cross-debugger. Michael C