Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Elena Zannoni <ezannoni@redhat.com>
To: Joel Brobecker <brobecker@gnat.com>
Cc: gdb-patches@sources.redhat.com
Subject: Re: [RFA] Add new language: "unsupported"
Date: Wed, 07 May 2003 14:21:00 -0000	[thread overview]
Message-ID: <16057.6050.991104.721761@localhost.redhat.com> (raw)
In-Reply-To: <20030507014231.GA3156@gnat.com>

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  <brobecker@gnat.com>
 > 
 >         * 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 <whatever>'.

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);
 > 


  parent reply	other threads:[~2003-05-07 14:21 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-07  1:42 Joel Brobecker
2003-05-07 11:01 ` Eli Zaretskii
2003-05-07 14:21 ` Elena Zannoni [this message]
2003-05-07 14:24   ` Daniel Jacobowitz
2003-05-08 17:37   ` Joel Brobecker
2003-05-07 15:01 ` Daniel Berlin
2003-05-07 17:27   ` Elena Zannoni
2003-05-07 18:10     ` Joel Brobecker
2003-05-08 17:55     ` Joel Brobecker

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=16057.6050.991104.721761@localhost.redhat.com \
    --to=ezannoni@redhat.com \
    --cc=brobecker@gnat.com \
    --cc=gdb-patches@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox