From: Joel Brobecker <brobecker@gnat.com>
To: gdb-patches@sources.redhat.com
Subject: [RFA] Add new language: "unsupported"
Date: Wed, 07 May 2003 01:42:00 -0000 [thread overview]
Message-ID: <20030507014231.GA3156@gnat.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 1881 bytes --]
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.
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?
Thanks,
--
Joel
[-- Attachment #2: lang.diff --]
[-- Type: text/plain, Size: 2571 bytes --]
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);
}
[-- Attachment #3: dw2.diff --]
[-- Type: text/plain, Size: 748 bytes --]
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);
next reply other threads:[~2003-05-07 1:42 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-07 1:42 Joel Brobecker [this message]
2003-05-07 11:01 ` Eli Zaretskii
2003-05-07 14:21 ` Elena Zannoni
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=20030507014231.GA3156@gnat.com \
--to=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