symtabs for variables as well as functions. Add `set print
fast-symbolic-addr' and default it to fast (the old way).
Print line numbers for data items as well as functions.
* symtab.c (find_addr_symbol): Return the symtab and the symbol
address, if a symbol is found (take two more args pointing to
where to store these results).
* symtab.h (find_addr_symbol): Add prototype.
compiler generated tag names.
* mdebugread.c (parse_type): Handle cross references to qualified
aggregate types.
* valops.c (value_struct_elt): Improve error message if the
address of a method is requested from an object instance.
* valops.c (search_struct_method): Make name_matched non-static
to get it initialized correctly.
partial_symbol): Shrink the storage sizes of symbols, by making
enums into 1-byte bitfields when compiled __GNUC__, moving all the
enums and small ints to the end of each struct to improve
alignment, and switching the section number from int to unsigned short.
to [0,0] rather than [0, end of first source file]. This avoids
problems with other parts of GDB looking for linetables in the
_globals_ symtab. Eliminate variables num_object_files and
first_object_file_end.
Fixes PR gdb/4072.
(pop_frame): Restore PC2 and LR0 from dummy frames.
(push_dummy_frame): Save PC2 and LR0 into dummy frames.
(setup_arbitrary_frame): Handle 3 args and set up real frames.
* config/a29k/tm-a29k.h (FRAME_NUM_ARGS): Update comments.
(DUMMY_FRAME_RSIZE): Add 2 longwords for PC2 and LR0.
(SETUP_ARBITRARY_FRAME): Define.
there.]
* sparc-tdep.c (sparc_pop_frame): Pop the fsr and csr (float and
coprocessor status regs) when popping a frame. This fixes
float exceptions that occur after calling inferior functions.
* sparc-nat.c (fetch_inferior_registers, store_inferior_registers):
Read and write the fsr (float status register) to/from the child
process along with the float regs. Remove Peter Schauer's change
of May 24 '93, which has higher overhead and doesn't solve the
real problem (which was that FSR wasn't being set).
Read and write the fsr (float status register) to/from the child
process. This avoids random float exceptions when running under
GDB, and probably obsoletes Peter Schauer's change of May 24 '93
(which remains for safety).
stack overflow check isn't right after the register stack
adjustment instruction. Metaware R2.3u compiler moves other
things in front of it. This fix isn't perfect but is what's
running.
config/vax/tm-vax.h (CALL_DUMMY_BREAKPOINT_OFFSET): Define.
* mdebugread.c (parse_symbol): Handle enum sh.type produced by
DEC c89.
* mdebugread.c (add_line): Handle zero linenos produced by DEC c89.
watchpoint enabled on mips, CALL_DUMMY_BREAKPOINT_OFFSET got defined.
* gdb.t20/gdbme.cc, gdb.t21/gdbme.cc: Conversion operator functions
have to be typeless.
printing to gdb_stderr.
* remote-udi.c (udi_kill): Don't close the connection, just set
inferior_pid to zero.
(udi_mourn): Call remove_breakpoints.
* remote-udi.c: Remove obsolete need_artificial_traps comment.
* target.c (store_waitstatus): Add CHILD_SPECIAL_WAITSTATUS hook.
* infrun.c (wait_for_inferior): Replace SIGTRAP_STOP_AFTER_LOAD with
code which looks for those two waitkinds. Use switch statement.
* config/rs6000/tm-rs6000.h: Replace SIGTRAP_STOP_AFTER_LOAD with
CHILD_SPECIAL_WAITSTATUS.
* Move target_signal_from_host, target_signal_to_host, and
store_waitstatus from inftarg.c to target.c. procfs needs them.
* target.c: Include "wait.h" and <signal.h>.
* target.h, infrun.c (proceed), proceed callers: Pass new code
TARGET_SIGNAL_DEFAULT instead of -1. This avoids problems with
enums being treated as unsigned and is cleaner.
* infrun.c (signals_info): Don't print TARGET_SIGNAL_DEFAULT or
TARGET_SIGNAL_0.
* infcmd.c (signal_command), infrun.c (signals_info):
Don't allow user to specify numeric equivalent of
TARGET_SIGNAL_DEFAULT.
struct target_waitstatus. Change status argument to target_wait to
be struct target_waitstatus * instead of int *.
* target.h, infrun.c, all targets: Change type of signal arguments
to resume(), proceed(), and target_resume() from int to enum
target_signal.
* All targets (*_wait, *_resume): Change accordingly.
* infcmd.c (program_info, signal_command), throughout infrun.c,
* fork-child.c, solib.c, hppa-tdep.c, osfsolib.c: Use this stuff.
* convex-xdep.c, convex-tdep.c: Add FIXME's (getting the Convex
signal code stuff right with the new signals would be non-trivial).
* inferior.h (stop_signal): Make it enum target_signal not int.
* target.c, target.h (target_signal_to_string, target_signal_to_name,
target_signal_from_name): New functions.
* inftarg.c, target.h (target_signal_to_host, target_signal_from_host,
store_waitstatus): New functions.
* procfs.c (procfs_notice_signals): Use them.
* i960-tdep.c (i960_fault_to_signal): New function, to replace
print_fault.
* config/i960/tm-i960.h: Don't define PRINT_RANDOM_SIGNAL.
struct target_waitstatus. Change status argument to target_wait to
be struct target_waitstatus * instead of int *.
* target.h, infrun.c, all targets: Change type of signal arguments
to resume(), proceed(), and target_resume() from int to enum
target_signal.
* All targets (*_wait, *_resume): Change accordingly.
* infcmd.c (program_info, signal_command), throughout infrun.c,
* fork-child.c, solib.c, hppa-tdep.c, osfsolib.c: Use this stuff.
* convex-xdep.c, convex-tdep.c: Add FIXME's (getting the Convex
signal code stuff right with the new signals would be non-trivial).
* inferior.h (stop_signal): Make it enum target_signal not int.
* target.c, target.h (target_signal_to_string, target_signal_to_name,
target_signal_from_name): New functions.
* inftarg.c, target.h (target_signal_to_host, target_signal_from_host,
store_waitstatus): New functions.
* procfs.c (procfs_notice_signals): Use them.
* i960-tdep.c (i960_fault_to_signal): New function, to replace
print_fault.
* config/i960/tm-i960.h: Don't define PRINT_RANDOM_SIGNAL.
mips_receive_packet.
(callers): pass in mips_receive_wait except mips_initialize (where
we use it to clean up the kludge where we had been changing
mips_receive_wait temporarily) and mips_wait (where we pass in
-1 for no timeout).
* remote-mips.c: Use it instead of error() most places.
* remote-mips.c (mips_receive_packet): New arg throw_error.
(mips_initialize): Use it not catch_errors.
* defs.h: Declare error_pre_print and warning_pre_print here...
* main.c: ...not here.
change caused "p (...)0" to dump core.
* gdbtypes.c (check_stub_method): Don't pass "..." to
parse_and_eval_type. This should fix the bug which Kung was
trying to fix.
two symbols, don't just ignore the second (LOC_REGISTER) one.
* printcmd.c (print_frame_args): If we have a LOC_ARG and a
LOC_REGISTER, use the LOC_ARG not the LOC_REGISTER.
ChangeLog stabsread.c
* stabsread.c (read_type): fix problem when reading static member
of a class. caused by change to allow :: inside template
instantiated name.
from here . . .
* symtab.h: . . . to here.
* dbxread.c (record_minimal_symbol): Move check for gcc{,2}_compiled.
and __gnu_compiled* from here . . .
* minsyms.c (prim_record_minimal_symbol_and_info): . . . to here.
* minsyms.c (prim_record_minimal_symbol): Call
prim_record_minimal_symbol_and_info rather than duplicating code.
stabs-in-elf.
(pastab_build_psymtabs): Likewise.
* hppa-tdep.c: Change all comments to reference %r3 or frame pointer
rather than %r4.
(frame_chain, skip_prologue, dig_rp_from_stack): Handle %r3 as the
frame pointer.
* config/pa/tm-hppa.h (FP_REGNUM): Define as %r3.
(FIND_FRAME_SAVED_REGS): Handle %r3 as frame pointer.
(CALL_DUMMY): Likewise.
* infrun.c (wait_for_inferior): Remove confusing and inaccurate
stuff about subroutine calls, return, etc., from comment which
says "We've wandered out of the step range.".
Sun Dec 26 09:18:10 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
* infrun.c (wait_for_inferior): When checking whether the line has
changed, check the symtab as well.
complain() not warning() if the TYPE_CODE isn't one we know how to
deal with gracefully. Use builtin_type_int not
lookup_fundamental_type (the objfile we passed to
lookup_fundamental_type was sometimes NULL).
The old way (using #undef in tm.h) was ugly and asking for
trouble, because it makes it possible for some file to use the
wrong definition. Move definition of HOST_CHAR_BIT after definition
of TARGET_CHAR_BIT.
* config/alpha/tm-alpha.h, config/h8300/tm-h8300.h,
config/h8500/tm-h8500.h, config/z8k/tm-z8k.h: Don't undef TARGET_*_BIT
before defining them.
* ch-lang.c (chill_is_varying_struct), ch-lang.h: New function.
* ch-lang.c (chill_printstr): Use double quotes, not single quotes.
* ch-typeprint.c (chill_type_print_base): Handle TYPE_CODE_BITSTRING.
Improve printing of TYPE_CODE_STRING, TYPE_CODE_SET, and
TYPE_CODE_STRUCT (including checking chill_is_varying_struct).
Print TYPE_DUMMY_RANGE by printing its TYPE_TARGET_TYPE.
Handle TYPE_CODE_ENUM.
* ch-valprint.c (chill_val_print): Handle TYPE_CODE_BITSTRING.
For TYPE_CODE_STRING, never print address. Handle VARYING strings.
* gdbtypes.c (force_to_range_type): New.
* gdbtypes.c (create_set_type): Make work, following Chill layout.
* gdbtypes.h (TYPE_LOW_BOUND, TYPE_HIGH_BOUND, TYPE_DUMMY_RANGE): New.
* stabsread.c (read_type): Distinguish string and bitstring from
char-array and set.
* valarith.c (value_subscript), valops.c (value_coerce_array):
Handle STRINGs as well as ARRAYs.
* valarith.c (value_bit_index): Fix think. Use new macros.
ChangeLog symtab.c c-valprint.c
* symtab (decode_line_1): fix a bug when position char is not
set correctly.
* c-valprint (c_val_print): handle vtbl printing when vtbl is not
set up yet.