From 20a0e81d7ad1d99add65f1787c8791ba6d360eea Mon Sep 17 00:00:00 2001 From: Joel Brobecker Date: Thu, 8 May 2003 17:35:21 +0000 Subject: [PATCH] * defs.h (language): Add language_minimal enum value. * c-lang.c (minimal_language_defn): New language definition. (_initialize_c_language): Add the new minimal language to the list of languages known to GDB. --- gdb/ChangeLog | 7 +++++++ gdb/c-lang.c | 37 +++++++++++++++++++++++++++++++++++++ gdb/defs.h | 3 ++- 3 files changed, 46 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 00cfdaed94b..fd8cb1b75d4 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2003-05-08 J. Brobecker + + * defs.h (language): Add language_minimal enum value. + * c-lang.c (minimal_language_defn): New language definition. + (_initialize_c_language): Add the new minimal language to the list + of languages known to GDB. + 2003-05-08 Kevin Buettner * frame.c (get_frame_type): Don't attempt to lazily initialize diff --git a/gdb/c-lang.c b/gdb/c-lang.c index e492b9a205e..fbdf0054afa 100644 --- a/gdb/c-lang.c +++ b/gdb/c-lang.c @@ -651,10 +651,47 @@ const struct language_defn asm_language_defn = LANG_MAGIC }; +/* The following language_defn does not represent a real language. + It just provides a minimal support a-la-C that should allow users + to do some simple operations when debugging applications that use + a language currently not supported by GDB. */ + +const struct language_defn minimal_language_defn = +{ + "minimal", /* Language name */ + language_minimal, + 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 (&minimal_language_defn); } diff --git a/gdb/defs.h b/gdb/defs.h index 35d23df9caa..6024253a17a 100644 --- a/gdb/defs.h +++ b/gdb/defs.h @@ -211,7 +211,8 @@ enum language language_m2, /* Modula-2 */ language_asm, /* Assembly language */ language_scm, /* Scheme / Guile */ - language_pascal /* Pascal */ + language_pascal, /* Pascal */ + language_minimal /* All other languages, minimal support only */ }; enum precision_type -- 2.30.2