Andrew Beers' changes for Modula-2 support.
This commit is contained in:
parent
c8023e6630
commit
0def21a0f2
653
gdb/ChangeLog
653
gdb/ChangeLog
@ -1,3 +1,656 @@
|
||||
Wed Sep 18 15:55:51 1991 John Gilmore (gnu at cygnus.com)
|
||||
|
||||
Merge multiple-language support, and partial Modula-2 support,
|
||||
from Andrew Beers <beers@cs.buffalo.edu>.
|
||||
|
||||
* i387-tdep.c: New file, consolidates most 80387 support,
|
||||
and eliminates host dependency on double<->extended conversions.
|
||||
* i386-xdep.c, symm-xdep.c: Remove most 387 support.
|
||||
* xconfig/i386{sco,v,v-g,v32,v32-g}: Now need i387-tdep.o.
|
||||
|
||||
* symfile.c (allocate_symtab): New fn, consolidates the work
|
||||
of allocating and initializing a new struct symtab. Set the
|
||||
language of the symtab based on its filename extension.
|
||||
* symfile.h: Declare it.
|
||||
* mipsread.c (new_symtab): Use it. Minor formatting changes.
|
||||
* dbxread.c (end_symtab): Use it.
|
||||
|
||||
* mipsread.c (parse_symbol, case stParam and stProc): Add #if 0'd
|
||||
code for saving types of parameters with each function definition.
|
||||
* dbxread.c (define_symbol, function and parameter cases): Ditto.
|
||||
(read_dbx_symtab, case N_DEFD): Ignore.
|
||||
(read_enum_type): Recognize FALSE/TRUE enum as Modula-2 BOOLEAN.
|
||||
(read_range_type): Rename MAX_OF_TYPE to MAX_OF_C_TYPE, etc.
|
||||
#if 0 out its uses, though, since they set a dead value.
|
||||
* coffread.c (end_symtab): Use allocate_symtab.
|
||||
(process_coff_symbol): #if 0'd for functions and params as above.
|
||||
(read_enum_type): Recognize Modula-2 BOOLEAN.
|
||||
* symtab.c (add_param_to_type): #if 0'd function to add a
|
||||
parameter type to a function type's field list.
|
||||
|
||||
* defs.h (local_hex_format, local_hex_string, *_custom): Add.
|
||||
* i386-xdep.c, pyr-tdep.c, pyr-xdep.c, remote-vx.c, solib.c,
|
||||
source.c, symfile.c, dbxread.c, breakpoint.c, core.c, exec.c,
|
||||
i387-tdep.c, infcmd.c, mips-tdep.c, stack.c, printcmd.c: Output
|
||||
hex with local_hex_string for Modula-2 support.
|
||||
|
||||
* breakpoint.c (breakpoint_cond_eval): Use new value_true to test
|
||||
breakpoint condition language-independently.
|
||||
|
||||
* parse.c: New file with the common code remains of expread.y.
|
||||
* parser-defs.h: New file with common declarations from expread.y.
|
||||
* c-exp.y: New file with the C parser from expread.y, and other
|
||||
language-specific information.
|
||||
* m2-exp.y: New file with the Modula-2 parser and etc.
|
||||
* expread.y, expread.tab.c: Remove.
|
||||
* breakpoint.c, eval.c, printcmd.c, expression.h: Use
|
||||
parse_expression and parse_exp_1 rather than parse_c_expression
|
||||
and parse_c_1.
|
||||
|
||||
* symtab.h (enum languages): Move to defs.h.
|
||||
(enum type_code): Add TYPE_CODE_CHAR and TYPE_CODE_BOOL.
|
||||
Declare Modula-2 builtin types.
|
||||
Add MAX_OF_TYPE and MIN_OF_TYPE macros.
|
||||
|
||||
* symtab.c (_initialize_symtab): Remove builtin type
|
||||
definition and initialization to *-exp.y.
|
||||
(lookup_primitive_typename): Use language-dependent vector.
|
||||
(lookup_typename): Fix bug, make it work if primitive typename.
|
||||
(lookup_unsigned_typename): Call above.
|
||||
(create_array_type): Set up range type for array index.
|
||||
(list_symbols): Call typedef_print to print typedefs.
|
||||
(Currently #ifndef FIXME'd out awaiting integration.)
|
||||
|
||||
* values.c (unpack_long, value_from_longest): Handle
|
||||
TYPE_CODE_BOOL and TYPE_CODE_CHAR.
|
||||
|
||||
* expression.h (enum exp_opcode): Add Modula-2 specific opcodes.
|
||||
* expprint.c: Look up expression opcodes in language-specific
|
||||
table, based on expression's language. Handle some Modula-2
|
||||
specific opcodes.
|
||||
|
||||
* stack.c (frame_info): Print language of stack frame.
|
||||
(select_frame): Also select language, if in auto-mode.
|
||||
(get_frame_language): New subroutine.
|
||||
* main.c (execute_command): Warn as language changes automatically.
|
||||
|
||||
* printcmd.c (ptype_command): Parse types using the language
|
||||
parser, both for language-independence, and so that scopes can
|
||||
be specified.
|
||||
|
||||
* language.h, language.c: New files for language-specific macros,
|
||||
declarations, and definitions.
|
||||
|
||||
Misc fixes:
|
||||
|
||||
* main.c (main): If error() is called during early
|
||||
initialization, print its message and then exit(1) from GDB.
|
||||
|
||||
* valprint.c (type_print_base): Avoid printing garbage for ints
|
||||
of unusual sizes.
|
||||
(_initialize_valprint): Warn about host/target size assumption;
|
||||
improve long long support slightly.
|
||||
|
||||
* convex-tdep.c (comm_registers_info): Avoid parsing decimal and
|
||||
hex -- let parse_and_eval_address do it.
|
||||
|
||||
* doc/gdbint.texinfo (Languages): Doc how to add a language.
|
||||
|
||||
* Makefile.in: Cope with new files and removed files.
|
||||
|
||||
Tue Sep 17 08:37:41 1991 John Gilmore (gnu at cygint.cygnus.com)
|
||||
|
||||
Add Andrew Beers' changes for Modula-2 support. His ChangeLog
|
||||
entries are enclosed herein:
|
||||
|
||||
Mon Jun 3 17:05:45 EDT 1991
|
||||
|
||||
m2-exp.y Created. Tested outside of GDB for a few days. Proper
|
||||
operators were added, C specific operators and tokens
|
||||
removed. yylex() revamped to some extent. Still things
|
||||
missing from the grammar, such as sets.
|
||||
Tested for two weeks in GDB v3.5.
|
||||
|
||||
Tue Jun 11 17:23:48 EDT 1991
|
||||
|
||||
m2-exp.y Added boolean constants TRUE and FALSE to the grammar
|
||||
so they are built-in. Sort of a hack.
|
||||
|
||||
Fri Jun 14 12:53:51 EDT 1991
|
||||
|
||||
m2-exp.y Added range checking for numeric constants. Any numeric
|
||||
constant is assumed to be of builtin type INTEGER unless:
|
||||
(1) it is octal or hexadecimal, in which case it is a
|
||||
CARDINAL; (2) it is too big to fit into an INTEGER, in
|
||||
which case it is a CARDINAL.
|
||||
eval.c Added simple range checking for +, -, and * on integers.
|
||||
Doesn't work very well for *, since 6 * 1,000,000,000 =
|
||||
1,705,032,704, which fails the simple test of result >=
|
||||
first_operand, no matter in what order the operands are.
|
||||
|
||||
Tue Jun 18 14:11:30 EDT 1991
|
||||
|
||||
Broke the parser into parts, one containing the C grammar and the other
|
||||
containing code to be shared by all of the grammars.
|
||||
|
||||
The following files no longer exist:
|
||||
|
||||
expread.y
|
||||
expread.tab.c
|
||||
|
||||
The following files were added:
|
||||
|
||||
c-exp.y (The C grammar)
|
||||
m2-exp.y (The Modula-2 grammar)
|
||||
parser-code.c (Code that is shared by the above grammar)
|
||||
parser-code.h
|
||||
parser-defs.h
|
||||
|
||||
Makefile.dist Changed to reflect the above dependencies. NOTE: It is
|
||||
now necessary to use the Bison compiler compiler, since it
|
||||
will generate function/variable prefixes other than yy.
|
||||
|
||||
Tue Jun 18 16:47:49 EDT 1991
|
||||
|
||||
symtab.[ch] Added the external variable working_lang, than holds the
|
||||
value of the current working language.
|
||||
Added the ennumerated type language_mode, with the values
|
||||
language_auto and language_manual, the former meaning that
|
||||
GDB sets working_lang as needed, and the latter meaning
|
||||
that the value of working_lang is totally under user
|
||||
control.
|
||||
symtab.[ch] Added the Modula-2 pervasive types INTEGER, CARDINAL,
|
||||
REAL, BOOLEAN and CHAR. Also added the type codes
|
||||
TYPE_CODE_BOOL and TYPE_CODE_CHAR.
|
||||
utils.c Added set_language_command and show_language_command to
|
||||
implement the GDB support commands "set language" and
|
||||
"show language".
|
||||
expression.h A number of identifiers were added to the type exp_opcode
|
||||
to facilitate Modula-2 builtin functions, integer
|
||||
division, and array indexing.
|
||||
|
||||
Wed Jun 19 13:25:58 EDT 1991
|
||||
|
||||
language.h Added the macro STRICT_TYPE, which evaluates to non-zero
|
||||
if the language specified by working_lang requires the use
|
||||
of strict typing of expressions. Eventually, even this
|
||||
will be able to be changed by the user.
|
||||
Added the macro RANGE_CHECK, which evaluates to non-zero
|
||||
if the language specified by working_lang requires the
|
||||
checking of a value against the domain of its type.
|
||||
Eventually, even this will be able to be changed by the
|
||||
user.
|
||||
language.[ch] Predicates involving types (simple_type, ordered_type,
|
||||
same_type, integral_type, numeric_type, character_type,
|
||||
boolean_type, float_type) are added. These predicates are
|
||||
based on the current value of working_lang, and are handy
|
||||
in type-checking.
|
||||
|
||||
Wed Jun 19 15:39:34 EDT 1991
|
||||
|
||||
eval.c Added the function type_array_rank which computes the rank
|
||||
of an array type.
|
||||
valarith.c Added the funtion value_bool, which when given a integer
|
||||
value.h value (ie. struct value *) as an argument, it returns a
|
||||
boolean value (ie. struct value *) true if that integer
|
||||
is non-zero, and a boolean value false otherwise.
|
||||
valprint.c Added cases for TYPE_CODE_BOOL, so Modula-2 BOOLEAN values
|
||||
will print out properly.
|
||||
|
||||
Wed Jun 19 16:36:34 EDT 1991
|
||||
|
||||
valops.c Added the function value_capitalize, which returns it
|
||||
value.h argument capitalized if its argument is a lowercase
|
||||
letter, or the argument unchanged if its argument is not a
|
||||
letter.
|
||||
valarith.c Added the function range_check_p, which returns non-zero
|
||||
value.h if its value argument is between the integral bounds upper
|
||||
and lower.
|
||||
Added the function range_check_enum_p, which makes sure
|
||||
that its value argument is a valid member of the domain of
|
||||
its type argument.
|
||||
Added the function range_check_range_p, which makes sure
|
||||
its value argument lies between the upper and lower bounds
|
||||
of its type argument, which must be a ranged type.
|
||||
Added the function check_array_index, which range and type
|
||||
checks an index of an array.
|
||||
Added the function value_multi_subscript, which computes
|
||||
array[idx1,idx2...idxN], given a value array and an array
|
||||
of values representing indicies.
|
||||
values.c Changed value_from_long to work with TYPE_CODE_CHAR and
|
||||
unpack_long to work with TYPE_CODE_BOOL and
|
||||
TYPE_CODE_CHAR.
|
||||
|
||||
Wed Jun 19 18:04:08 EDT 1991
|
||||
|
||||
symtab.c Stored pervasive types in a structure and make
|
||||
lookup_pervasive_type() a lookup function that was based
|
||||
on working_lang. If lookup_pervasive_type() returned
|
||||
non-zero, then that value was returned (a fix, since
|
||||
before it simply wouldn't return the pervasive type.)
|
||||
language.h Added the macro CAST_IS_CONVERSION, which evaluates to
|
||||
non-zero if the language specified by working_lang means
|
||||
"conversion" when it says "cast".
|
||||
valops.c Added the function value_real_cast(), which performs a
|
||||
value.h *cast*, not a *conversion*, which is what value_cast()
|
||||
does when it can. In particular,
|
||||
value_cast(<float_type>,4) = 4.0, while
|
||||
value_real_cast(<float_type>,4) = some mess.
|
||||
eval.c Modula-2 builtin functions implemented: ABS, CAP, CHR,
|
||||
parser-code.c FLOAT, HIGH, MAX, MIN, ODD, ORD, TRUNC, and VAL.
|
||||
expression.h Added macros MAX_OF_TYPE and MIN_OF_TYPE to work with MAX
|
||||
and MIN on integral types. *NOTE*: These are currently
|
||||
hardcoded to work only if there are 8 bits per storage
|
||||
unit. FIXME.
|
||||
eval.c Made logical functions call value_bool to return a
|
||||
properly typed boolean value, based on working_lang.
|
||||
|
||||
Thu Jun 20 11:55:27 EDT 1991
|
||||
|
||||
valprint.c Types now print out in a Modula-2 fashion. This works for
|
||||
the cases when the type is printed out step-by-step, that
|
||||
is, it doesn't work when the name of a structured type
|
||||
(which includes the keyword "struct", etc.) is simply
|
||||
displayed.
|
||||
FIXME: Perhaps this is bad. Parts of it seem to kludgey,
|
||||
since type specifications in C and Modula-2 are very
|
||||
different. The C printing of a type is very recursive,
|
||||
whereas in Modula-2 it is generally very simple. C has
|
||||
type prefixes and suffixes, which have no real analogue in
|
||||
Modula-2. Maybe type_print() should call a language
|
||||
specific type printer. This is also advantageous if we
|
||||
compile GDB to exclude some of the languages. We'll just
|
||||
leave those functions out.
|
||||
|
||||
Thu Jun 20 16:57:10 EDT 1991
|
||||
|
||||
dbxread.c When reading the complete symbol table in (via
|
||||
psymtab_to_symtab()), the number and types of function
|
||||
arguments are added to a function type. define_symbol()
|
||||
calls add_param_to_type() to accomplish this.
|
||||
Assumption: when we come across a function definition
|
||||
(N_FUN symbol with an 'f' or 'F' in the name), its
|
||||
arguments will appear before another function definition.
|
||||
When a function is found, a pointer to its type is placed
|
||||
in the global in_function_type. Changes that
|
||||
add_param_to_type() makes are to this global.
|
||||
valprint.c The type of a function now includes (for Modula-2) the
|
||||
types of its parameters.
|
||||
eval.c Type checking and a check for the proper number of
|
||||
arguments is now done for function calls. Not sure of the
|
||||
impact this has on C++ member function yet.
|
||||
|
||||
Thu Jun 20 19:58:48 EDT 1991
|
||||
|
||||
valprint.c Rewrote the type printer. Broke it into two language
|
||||
specific parts, adding the functions type_print_m2() and
|
||||
type_print_m2_1().
|
||||
An unfortunate consequence is this: if you debugging a C
|
||||
program in Modula-2 mode (why?), info types does not work
|
||||
well with regular expressions, since the types are printed
|
||||
out in Modula-2 terminology, but stored in C terminology.
|
||||
language.[ch] Added the functions new_type_last(), type_keyword(), and
|
||||
type_sep() to aid in the printing of typedefs.
|
||||
symtab.c Made the printing of typedefs as language independent as
|
||||
possible through calls to new_type_last(), type_keyword(),
|
||||
and type_sep().
|
||||
|
||||
Fri Jun 21 11:50:26 EDT 1991
|
||||
|
||||
dbxread.c Check all incoming ennumerated types. If it looks like
|
||||
Modula-2's BOOLEAN type, then change the type_code of the
|
||||
type to TYPE_CODE_BOOL so we can process it as a boolean
|
||||
variable.
|
||||
valprint.c Replaced some of the 0x%x with calls to sprintf and
|
||||
hexformat() in val_print().
|
||||
language.[ch] Added the function hex_to_string(), which converts its
|
||||
integral argument to a hexadecimal number (format is
|
||||
language based) and returns the result as a string.
|
||||
|
||||
Mon Jun 24 12:25:07 EDT 1991
|
||||
|
||||
valprint.c Some functions call type_print_1() directly, instead of
|
||||
value.h using type_print(), so they can specify where (column) to
|
||||
print things. Since type_print() takes care of language
|
||||
dependence, that needs to be called first. Added a
|
||||
parameter depth to type_print() (so it is now like
|
||||
type_print_1). Changed type_print to type_print_at, and
|
||||
made type_print a macro that passes a depth argument of
|
||||
zero.
|
||||
symmisc.c Changed all calls to type_print_1 to calls to
|
||||
type_print_at.
|
||||
Makefile.dist Made it possible to build GDB for a specific set of
|
||||
depend languages. Do this by passing a definition for the macro
|
||||
LANGS to make. LANGS should be a string containing a
|
||||
space-separated list of language names (ie. LANGS="c m2").
|
||||
The default is to build all languages. Note that grammar
|
||||
files must follow the naming convention of <lang>-exp.y.
|
||||
gdb.lang This holds the current value of the LANGS macro. It is
|
||||
examined every time make is called, and is updated if
|
||||
necessary.
|
||||
eval.c Added #ifdef _LANG_<lang> to these files.
|
||||
expread.c Still need to add them to dbxread.c and coffread.c.
|
||||
main.c
|
||||
source.c
|
||||
symtab.c
|
||||
utils.c
|
||||
valarith.c
|
||||
valprint.c
|
||||
|
||||
Mon Jun 24 16:33:11 EDT 1991
|
||||
|
||||
language.[ch] Added the functions hexformat_pre() and
|
||||
hex_to_string_pre(), which take a prefix argument to
|
||||
include in the format string. Thus, hexformat_pre("08") will
|
||||
return "0x08x" (if the working language is language_c).
|
||||
Made hexformat() and hex_to_string() calls to the above
|
||||
with "" as the prefix argument.
|
||||
|
||||
am29k-pinsn.c, arm-pinsn.c, breakpoint.c, convex-tdep.c, exec.c, core.c,
|
||||
dbxread.c, i386-pinsn.c, i386-stub.c, i386-xdep.c, i960-pinsn.c,
|
||||
infcmd.c, inflow.c, m68k-pinsn.c, m68k-stub.c, m88k-pinsn.c,
|
||||
mips-pinsn.c, mips-tdep.c, ns32k-pinsn.c, printcmd.c, pyr-pinsn.c,
|
||||
pyr-tdep.c, pyr-xdep.c, remote-vx.c, remote.c, solib.c, source.c,
|
||||
stack.c, sun386-xdep.c, symfile.c, symm-xdep.c, symmisc.c, tahoe-pinsn.c,
|
||||
valprint.c, vax-pinsn.c
|
||||
|
||||
Changed all occurences of 0x%[0-9]*l*x in printf format strings to
|
||||
calls to hexformat() and hex_to_string(). Format strings without
|
||||
the leading "0x" were ignored.
|
||||
|
||||
depend Updated to take the above into account.
|
||||
|
||||
|
||||
Tue Jun 25 15:27:18 EDT 1991
|
||||
|
||||
symtab.h Added the types range_mode_t, range_check_t, type_mode_t,
|
||||
and type_check_t to keep track of the current state of
|
||||
range and type checking.
|
||||
main.c Added the variables range_mode, range_check, type_mode,
|
||||
and type_check to record the current state of range and
|
||||
type checking. Added initialization code to main().
|
||||
language.h Changed the macros STRICT_TYPE and RANGE_CHECK to examine
|
||||
the above variables.
|
||||
|
||||
|
||||
Tue Jun 25 17:57:08 EDT 1991
|
||||
|
||||
dbxread.c process_one_symbol() updates the variable (enum language)
|
||||
source_lang based on the extension of the filename
|
||||
contained in the N_SO sybmol that started this symtab.
|
||||
When end_symtab() is called, the value of source_lang is
|
||||
put into the language field.
|
||||
stack.c select_frame() sets working_lang (and possibly type_check
|
||||
and range_check) to the language field of the symtab
|
||||
associated with the frame that is selected if working_mode
|
||||
is language_auto. If working_mode is language_manual, a
|
||||
warning is printed and working_lang is not set.
|
||||
language.c Added the function set_type_range(), which sets the value of
|
||||
type_check and range_check (if their modes call for
|
||||
automatic setting) based on the current value of
|
||||
working_lang. A non-zero argument will cause the current
|
||||
settings to be output.
|
||||
|
||||
|
||||
Wed Jun 26 14:51:40 EDT 1991
|
||||
|
||||
eval.c Added range checks on assignment.
|
||||
m2-exp.y Added the grammar for sets to the language. Currently,
|
||||
these do not do anything except print an error message.
|
||||
|
||||
Wed Jun 26 17:01:04 EDT 1991
|
||||
|
||||
m2-exp.y Added the ability for parse_number() to parse negative
|
||||
numbers. A global flag is set upon encountering a unary
|
||||
minus. This was done to make, for example, 1 parse as a
|
||||
CARDINAL, and not as an integer, per Wirth's examples in
|
||||
Programming in Modula-2 ed.4.
|
||||
valprint.c Added support for "set radix 2" by then setting
|
||||
output_format to 't'.
|
||||
eval.c Implemented range checking on subrange types. Added calls
|
||||
to range_check_range_p for BINOP_ASSIGN and BINOP_VAL.
|
||||
Implemented MIN and MAX for ennumerated types. The
|
||||
minimum value of an ennumerated type is defined by Wirth
|
||||
as the first identifier, and the maximum as the last.
|
||||
m2-exp.y Made octal numbers ending with "B" be characters and those
|
||||
ending with "C" be numbers, per Wirth's book. (p. 34)
|
||||
|
||||
Thu Jun 27 14:11:52 EDT 1991
|
||||
|
||||
stack.c select_frame() now only sets working_lang, it does not
|
||||
notify the user. If working_mode is language_manual, then
|
||||
a warning is issued once.
|
||||
main.c At the end of each call to execute_command(), working_lang
|
||||
is checked against the local static (enum language)
|
||||
current. If they differ and working_mode is
|
||||
language_auto, the new settings of language, type and
|
||||
range checking are printed out.
|
||||
stack.c Modified frame_info() to include the language of the
|
||||
current frame in the output of "info frame".
|
||||
language.[ch] Added the function language_str() which returns the name
|
||||
of the current language.
|
||||
|
||||
Fri Jun 28 15:33:14 EDT 1991
|
||||
|
||||
m2-exp.y Added the built-in procedures INC, INCL, DEC, and DECL to
|
||||
the language. INCL and DECL currently cause an error,
|
||||
since sets are not implemented yet. INC and DEC are
|
||||
implemented as PREINCREMENT/PREDECREMENT with one
|
||||
argument, and as ASSIGN_MODIFY with two arguments.
|
||||
eval.c Added type checking to the above cases.
|
||||
value.h Added not_lval_constant to the lval_type ennumerated type.
|
||||
not_lval_constant means that the value is a constant
|
||||
value; that is 3 or 'a' or TRUE, not as in a constant
|
||||
identifier. This is used to help coerce numbers such as 3
|
||||
to either signed or unsigned numbers.
|
||||
valops.c Added the function value_coerce_constants() which coerces
|
||||
constant integers as following: if one is a constant and
|
||||
the other is not, the constant's type is set to the type
|
||||
of the other argument. If both are constants and one is
|
||||
signed, the other is converted to a signed constant.
|
||||
|
||||
Sat Jun 29 17:26:29 EDT 1991
|
||||
|
||||
valarith.c Added a better range checker. It now checks range
|
||||
(successfully) on integral operations [+-] (signed and
|
||||
unsigned) for any C sized type. Still does not work well
|
||||
for multiplication.)
|
||||
int_in_size() returns an integer that is coerced to fit into
|
||||
specified number of bytes.
|
||||
|
||||
Mon Jul 1 13:04:14 EDT 1991
|
||||
|
||||
language.[ch] Added the function binop_result_type(), which returns the
|
||||
builtin (struct type *) type that would be the result of a
|
||||
binop on the two values V1 and V2.
|
||||
|
||||
Wed Jul 3 19:22:53 EDT 1991
|
||||
|
||||
source.c Extended source_info() to include the source language in
|
||||
the output from "info source".
|
||||
|
||||
Fri Jul 5 13:48:52 EDT 1991
|
||||
|
||||
utils.c Moved the support functions for the GDB set/show commands
|
||||
dealing with language into language.c.
|
||||
language.c Added the function language_info(), which displays info
|
||||
about the current working language, type and range check
|
||||
settings. Called via the GDB command "info language".
|
||||
Added an initialization routine _initialize_language(),
|
||||
that sets defaults for the language, type and range
|
||||
variables and sets up the new GDB commands.
|
||||
main.c Language setup moved to language.c.
|
||||
depend Rebuilt.
|
||||
|
||||
Mon Jul 8 10:10:22 EDT 1991
|
||||
|
||||
valarith.c Debugged the range checker for arithmetic. Still does not
|
||||
work for multiplication very well.
|
||||
|
||||
Mon Jul 8 12:40:37 EDT 1991
|
||||
|
||||
language.[ch] Added the function value_true() which returns non-zero if
|
||||
its argument represents a boolean true value.
|
||||
breakpoint.c Changed breakpoint_cond_eval() to call value_true() to
|
||||
check the truth of an expression.
|
||||
|
||||
Thu Jul 11 12:51:34 EDT 1991
|
||||
|
||||
language.[ch] Added the predicate structured_type(), which returns
|
||||
non-zero if the argument is a structured type.
|
||||
Added the predicate pointer_type(), which returns non-zero
|
||||
if the argument is a pointer type.
|
||||
eval.c Added the ability to do addition and substraction on
|
||||
pointers and integers. This case simply bypasses the
|
||||
type checker.
|
||||
|
||||
Thu Jul 11 14:41:42 EDT 1991
|
||||
|
||||
include/stab.def
|
||||
Added the symbol N_DEFD (0x4a) which is a definition
|
||||
module dependency that is used by the GNU Modula-2
|
||||
compiler and the linker. It is not important to GDB,
|
||||
except that [dbx|coff|mips]read.c should ignore these
|
||||
symbols.
|
||||
|
||||
Fri Jul 12 16:07:00 EDT 1991
|
||||
|
||||
valprint.c Changed the TYPE_LENGTH(type) >= 0 to TYPE_LENGTH(type) >
|
||||
0 in val_print(). Also added statements to the else part
|
||||
to coerce type (argument to val_print) to a pointer type
|
||||
if it is an "array of unspecified length".
|
||||
valops.c Added the function value_m2_string(), which returns a
|
||||
(value) value which is a constant string, whose type is
|
||||
(ARRAY [0..n] OF CHAR). The length field of the type
|
||||
structure is set to zero, so it will be interpreted as an
|
||||
"array of unspecified length".
|
||||
stack.c Moved the language/frame mismatch check to
|
||||
main.c:execute_command().
|
||||
main.c The working language is recorded each time
|
||||
execute_command() is executed. If working lang has
|
||||
changed during its execution, then the new
|
||||
language/type/range info is printed out for the user. If
|
||||
the working language does not match the language of the
|
||||
frame, a warning is issued.
|
||||
|
||||
Sat Jul 13 16:16:39 EDT 1991
|
||||
|
||||
eval.c Moved all the type-checking stuff for operators to
|
||||
language.[ch] language.c. This is so we can keep language-specific
|
||||
stuff (like for what type operators are defined) in
|
||||
language.c.
|
||||
language.[ch] Added the function binop_type_check(), which checks to see
|
||||
if its two (value) arguments are type-compatible with its
|
||||
opcode argument. The opcode should represent an operation
|
||||
involving an operator. Also added the macro function
|
||||
unop_type_check, which calls binop_type_check with a
|
||||
NULL second argument.
|
||||
expprint.c Added Modula-2 operators to the op_print_tab, so info
|
||||
expression.h break works correctly. Also added "op_string", which
|
||||
returns the string corresponding to the (enum exp_opcode)
|
||||
opcode that is its argument.
|
||||
|
||||
|
||||
Sat Jul 13 18:26:18 EDT 1991
|
||||
|
||||
coffread.c Added code to record the type of function arguments with
|
||||
each paricular function. Code is very similar to that
|
||||
added to dbxread.c.
|
||||
dbxread.c Moved add_param_to_type() to symtab.c
|
||||
symtab.[ch] Added function add_param_to_type() from dbxread.c
|
||||
|
||||
*** NOTE: The above additions have not been tested.
|
||||
|
||||
Mon Jul 15 12:50:47 EDT 1991
|
||||
|
||||
langauge.[ch] Added the functions type_error and range_error, which work
|
||||
like error() except if the type/range mode is set to
|
||||
*_mode_warn, then they do not do a return_to_top_level(),
|
||||
but merely print a warning.
|
||||
Also changed [set|show]_[type|range]_command() to support
|
||||
the new "warn" feature.
|
||||
|
||||
Thu Jul 18 17:50:54 EDT 1991
|
||||
|
||||
mipsread.c Added code to record the type of function arguments with
|
||||
each particular function. Code is very similar to that
|
||||
added to dbxread.c.
|
||||
|
||||
*** NOTE: The above additions have not been tested.
|
||||
|
||||
Fri Jul 19 11:19:10 EDT 1991
|
||||
|
||||
defs.h Added macros MAX_OF_SIZE, MIN_OF_SIZE, UMAX_OF_SIZE, and
|
||||
UMIN_OF_SIZE, which when given a size of a numeric type,
|
||||
return the maximum and minimum value it can hold. UMAX...
|
||||
and UMIN... return the result for unsigned types.
|
||||
symtab.h Added the macros MAX_OF_TYPE and MIN_OF_TYPE to operate on
|
||||
struct types. They call above macros.
|
||||
dbxread.c Renamed the MAX and MIN_OF_TYPE macros to ..._OF_CTYPE to
|
||||
avoid a name conlict with the above.
|
||||
c-exp.y Added range checking on numeric constants in
|
||||
parse_number() for completeness.
|
||||
valarith.c Made binop_user_defined_p() and unop_user_defined_p()
|
||||
return 0 if working_lang is not language_c.
|
||||
|
||||
Thu Aug 8 14:17:22 EDT 1991
|
||||
|
||||
main.c
|
||||
printcmd.c
|
||||
breakpoint.c Documentation strings of some commands changed to
|
||||
eliminate the references to the C language where
|
||||
appropriate.
|
||||
|
||||
Tue Aug 13 15:48:03 EDT 1991
|
||||
|
||||
m2-exp.y Added qualified identifiers to the grammar. The semantics
|
||||
are slightly different from those of the GDB operator ::
|
||||
c-exp.y
|
||||
m2-exp.y Added a rule to each grammar of the form: start ::= exp |
|
||||
type_exp, where type_exp is any valid type expression.
|
||||
expression.h
|
||||
eval.c Added the opcode OP_TYPE, and an error case in eval.c.
|
||||
printcmd.c Modified ptype_command() so it actually parses the input
|
||||
(necessary for type expressions with scope qualifiers).
|
||||
Added the function ptype_eval() which expects an
|
||||
expression composed of one OP_TYPE element.
|
||||
*.[ch] Replaced all occurences of parse_c_expression with
|
||||
parse_expression
|
||||
*.[ch] Replaced all occurences of parse_c_1 with parse_exp_1
|
||||
|
||||
[End of ChangeLog entries from Andrew Beers for Modula-2 support.]
|
||||
|
||||
Mon Sep 16 17:19:46 1991 John Gilmore (gnu at cygnus.com)
|
||||
|
||||
Small fixes from Peter Schauer:
|
||||
|
||||
* infrun.c (child_attach): Lint.
|
||||
* solib.c (find_solib): Handle shared libs version 2.
|
||||
|
||||
Small fixes from David Wood:
|
||||
|
||||
* xm-ultra3.h (SYS_SIGLIST_MISSING): Typo.
|
||||
|
||||
Small fixes:
|
||||
|
||||
* remote-vx.c: Move <stdio.h> to top, for FILE. Fix from
|
||||
John S <basrai%kanga.dnet@c3po.sm-alc.af.mil>.
|
||||
|
||||
* utils.c (wrap_here): Avoid wrap action of fputs_filtered if
|
||||
chars_per_line is at maximum (user typed `set width 0'). Fix
|
||||
from Andreas Schwab <schwab@ls5.informatik.uni-dortmund.de>.
|
||||
|
||||
Tue Sep 17 17:31:04 1991 Stu Grossman (grossman at cygnus.com)
|
||||
|
||||
* coredep.c: include ptrace.h where necessary.
|
||||
* mipsread.c(parse_lines): fix unsigned char problem that was
|
||||
messing up line numbers on SGI's and possibly other MIPS based
|
||||
platforms.
|
||||
* infrun.c (child_create_inferior): use better test to check
|
||||
return val from setpgrp().
|
||||
* tm-irix3.h, xm-irix3.h, tconfig/irix3, xconfig/irix3: add these
|
||||
for sgi/irix support.
|
||||
|
||||
Wed Sep 18 04:33:31 1991 Per Bothner (bothner at cygnus.com)
|
||||
|
||||
* mipsread.c (parse_symbol): Put non-static procedures
|
||||
|
Loading…
Reference in New Issue
Block a user