From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32508 invoked by alias); 7 May 2003 14:21:47 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 32498 invoked from network); 7 May 2003 14:21:43 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sources.redhat.com with SMTP; 7 May 2003 14:21:43 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.11.6/8.11.6) with ESMTP id h47ELhH15047 for ; Wed, 7 May 2003 10:21:43 -0400 Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [172.16.52.156]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id h47ELhI20416 for ; Wed, 7 May 2003 10:21:43 -0400 Received: from localhost.redhat.com (romulus-int.sfbay.redhat.com [172.16.27.46]) by pobox.corp.redhat.com (8.11.6/8.11.6) with ESMTP id h47ELgP13516 for ; Wed, 7 May 2003 10:21:42 -0400 Received: by localhost.redhat.com (Postfix, from userid 469) id 7CF9A2C43C; Wed, 7 May 2003 10:26:43 -0400 (EDT) From: Elena Zannoni MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <16057.6050.991104.721761@localhost.redhat.com> Date: Wed, 07 May 2003 14:21:00 -0000 To: Joel Brobecker Cc: gdb-patches@sources.redhat.com Subject: Re: [RFA] Add new language: "unsupported" In-Reply-To: <20030507014231.GA3156@gnat.com> References: <20030507014231.GA3156@gnat.com> X-SW-Source: 2003-05/txt/msg00085.txt.bz2 Joel Brobecker writes: > As promised to Elena, this is a followup on: > > http://sources.redhat.com/ml/gdb-patches/2003-04/msg00209.html > > Basically, I added a new "unsupported" language which support is > minimalistic (identical to what we do with the "asm" language). > I didn't fancy "partial": > > (gdb) show lang > Current language: auto; currently partial > > I felt like it could confuse the user to think that "partial" is the > name of a real language :-). But I'm not such a big fan of "unsupported" > either, so all suggestions are welcome. > minimal? I would think of 'basic' but that's obviously not good :-) 'unsupported' to me would imply that you still get the errors. Looking up on a thesaurus: primitive, primary, nominal, trivial, sparse > This new language will first be used by the dwarf2 reader, for objects > which language is currently not supported. What it does, at the moment, > is use the "unknown" language, which makes a lot of the GDB commands > fall flat. Like so, when debugging an Ada program: > > (gdb) list foo.adb:1 > internal error - unimplemented function unk_lang_create_fundamental_type called. > (gdb) quit > > With the attached patch, and also the little patch to dwarf2read.c > (attached too, will be submitted later, after this one is agreed on), > GDB behaves in a much more friendly way: > > (gdb) list foo.adb:1 > 1 procedure Foo is > 2 A : Integer := 1; > 3 begin > 4 A := A + 1; > 5 end Foo; > (gdb) b foo.adb:4 > Breakpoint 1 at 0x8049769: file foo.adb, line 4. > (gdb) run > Starting program: /lek.a/brobecke/ada_example/foo > > Breakpoint 1, _ada_foo () at foo.adb:4 > 4 A := A + 1; > Current language: auto; currently unsupported > (gdb) p a > $1 = 1 > > 2003-05-06 J. Brobecker > > * defs.h (language): Add language_unsupported enum value. > * c-lang.c (unsupported_language_defn): New language definition. > (_initialize_c_language): Add the new unsupported language to > the list of languages known to GDB. > > Ok to apply? Yes, modulus the name choice. Could you add a few more comments on what this new language is suitable for, etc? I wonder if we could add a mini test case, that maybe set the language to this new one, and tries something simple, if possible. We cannot add a test that uses Ada code, because that will eventually become obsolete when we get full ada support. But maybe we can still use a C program, and see what happens with 'set laguage '. thanks for doing this. elena > > Thanks, > -- > Joel > Index: defs.h > =================================================================== > RCS file: /cvs/src/src/gdb/defs.h,v > retrieving revision 1.118 > diff -c -3 -p -r1.118 defs.h > *** defs.h 10 Apr 2003 02:18:40 -0000 1.118 > --- defs.h 7 May 2003 01:23:11 -0000 > *************** enum language > *** 211,217 **** > language_m2, /* Modula-2 */ > language_asm, /* Assembly language */ > language_scm, /* Scheme / Guile */ > ! language_pascal /* Pascal */ > }; > > enum precision_type > --- 211,218 ---- > language_m2, /* Modula-2 */ > language_asm, /* Assembly language */ > language_scm, /* Scheme / Guile */ > ! language_pascal, /* Pascal */ > ! language_unsupported /* All other (unsupported) languages */ > }; > > enum precision_type > Index: c-lang.c > =================================================================== > RCS file: /cvs/src/src/gdb/c-lang.c,v > retrieving revision 1.18 > diff -c -3 -p -r1.18 c-lang.c > *** c-lang.c 2 Apr 2003 03:02:46 -0000 1.18 > --- c-lang.c 7 May 2003 01:23:04 -0000 > *************** const struct language_defn asm_language_ > *** 651,660 **** > --- 651,692 ---- > LANG_MAGIC > }; > > + const struct language_defn unsupported_language_defn = > + { > + "unsupported", /* Language name */ > + language_unsupported, > + c_builtin_types, > + range_check_off, > + type_check_off, > + case_sensitive_on, > + c_preprocess_and_parse, > + c_error, > + evaluate_subexp_standard, > + c_printchar, /* Print a character constant */ > + c_printstr, /* Function to print string constant */ > + c_emit_char, /* Print a single char */ > + c_create_fundamental_type, /* Create fundamental type in this language */ > + c_print_type, /* Print a type using appropriate syntax */ > + c_val_print, /* Print a value using appropriate syntax */ > + c_value_print, /* Print a top-level value */ > + NULL, /* Language specific skip_trampoline */ > + NULL, /* Language specific symbol demangler */ > + {"", "", "", ""}, /* Binary format info */ > + {"0%lo", "0", "o", ""}, /* Octal format info */ > + {"%ld", "", "d", ""}, /* Decimal format info */ > + {"0x%lx", "0x", "x", ""}, /* Hex format info */ > + c_op_print_tab, /* expression operators for printing */ > + 1, /* c-style arrays */ > + 0, /* String lower bound */ > + &builtin_type_char, /* Type of string elements */ > + LANG_MAGIC > + }; > + > void > _initialize_c_language (void) > { > add_language (&c_language_defn); > add_language (&cplus_language_defn); > add_language (&asm_language_defn); > + add_language (&unsupported_language_defn); > } > Index: dwarf2read.c > =================================================================== > RCS file: /cvs/src/src/gdb/dwarf2read.c,v > retrieving revision 1.90 > diff -c -3 -p -r1.90 dwarf2read.c > *** dwarf2read.c 15 Apr 2003 23:07:11 -0000 1.90 > --- dwarf2read.c 7 May 2003 01:23:14 -0000 > *************** set_cu_language (unsigned int lang) > *** 4548,4554 **** > case DW_LANG_Pascal83: > case DW_LANG_Modula2: > default: > ! cu_language = language_unknown; > break; > } > cu_language_defn = language_def (cu_language); > --- 4548,4554 ---- > case DW_LANG_Pascal83: > case DW_LANG_Modula2: > default: > ! cu_language = language_unsupported; > break; > } > cu_language_defn = language_def (cu_language); >