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.
(DECP_PC_AFTER_BREAK): Now is 0.
* config/h8500/tm-h8500.h (REGISTER_BYTES, REGISTER_BYTE,
REGISTER_NAMES): update to new view. (INIT_EXTRA_FRAME_INFO): No
extra frame info now.
* config/sh/sh.h (NOP): Define NOP insn.
* config/z8k/tm-z8k.h (BIG): is now sim_z8001_mode.
* config/z8k/z8ksim.mt (TDEPFILES): Add remote-sim.o to list.
(go32_readchar): Special handling for faster polling. (async
structure): Volatile.
* h8300-tdep.c (print_register_hook): Allocate and use the right
number bytes for the raw register.
* h8500-tdep.c (regoff, frame_find_saved_reg, examine_prologue):
deleted. (h8500_register_size, h8500_register_virtual_type, ):
Use new way of counting registers.
* remote-e7000.c (echo_index): deleted. (expect): Better handling
of user interrupts. (expect_prompt): Remove never used log file
support. (want, want_nopc): Add support for H8/300H.
(fetch_regs_from_dump): Treat \r and \n as whitespace.
(e7000_drain): Send an "end" command before waiting for output to
stop. (e7000_wait): Cope with H8/300H, better handling of user
interrupts. (why_stop, expect_n, sub2_from_pc): New function.
* remote-utils.c (gr_load_image): call fflush and QUIT more regularly.
* utils.c (notice_quit): New function for polling for user interrupts.
without interpreting that to mean "adjustable."
* ch-valprint.c (chill_val_print): Handle RANGE types.
* ch-typeprint.c (chill_type_print_base): Handle BOOL.
Handle variant records. Handle RANGE types.
* config/mips/idtl.mt: Use tm-idtl.h instead of tm-mips.h.
* config/mipos/tm-idt.h, config/mips/tm-idtl.h: New files; use
different BREAKPOINT value for IDT.
* configure.in (mips-sgi-irix5*): New host and target. Use irix5
for both.
* config/mips/irix5.mh, config/mips/irix5.mt,
config/mips/xm-irix5.h, config/mips/nm-irix5.h,
config/mips/tm-irix5.h, irix5-nat.c: New files for Irix 5 support.
* mdebugread.c: New file, split out of mipsread.c. Added
elfmdebug_build_psymtabs routine. Added some checks on external
symbols. Changed code to keep ecoff_debug_info and
ecoff_debug_swap structs in the psymtab and in global pointers
rather than retrieving them from the bfd. Also changed to keep
the pending list with the psymtab rather than the objfile (each
psymtab for a single objfile points to the same pending list).
* mipsread.c: Bulk of file moved into mdebugread.c, leaving just
the sym_fns.
* Makefile.in (SFILES): Added mdebugread.c.
(OBS): Added mdebugread.o.
(mdebugread.o): New target.
* symfile.h: Declare mdebug_build_psymtabs and
elfmdebug_build_psymtabs.
* elfread.c (struct elfinfo): Added mdebugsect field.
(elf_locate_sections): Remember location of .mdebug section.
(elf_symfile_read): Call elfmdebug_build_psymtabs on .mdebug
section.
* infrun.c (AT_FUNCTION_START): Set to 0 if not already defined.
(wait_for_inferior): Use AT_FUNCTION_START if it is defined to see
if PC is at the start of a function.
* mips-tdep.c (read_next_frame_reg): Use SIGFRAME_REG_SIZE, and
give it a default definition.
(mips_skip_prologue): Skip instructions which initialize $gp
register.
(in_sigtramp): New procedure, moved in from mipsread.c.
* config/mips/tm-mips.h: Declare in_sigtramp.
coredep.o to this list.
* gdb/m88k-nat.c (m88k_register_u_addr): Avoid error when passed
the number for an M88110 extended register by just returning the
address of r0.
ChangeLog symtab.c
* symtab.c(decode_line_1): fix the inconsistency of setting
breakpoint with '' or without them. The '' is needed when you
want name completion.
ChangeLog valops.c
* valops.c(search_struct_method): to use unified search so type
conversion operator works in calling method. (this file should be
checked in with last commit, I missed it).
* valprint.c (val_print_string): When looking for a null
terminator compare current bufsize to fetchlimit to determine
when to stop, instead of computing buffer+fetchlimit which
may overflow for very large limits (like "unlimited").
ChangeLog eval.c valarith.c
* eval.c(evaluate_subexp): to use unified search so type conversion
operator works in calling method.
* valarith.c(value_x_binop, value_x_unop): same as above.
ChangeLog eval.c valops.c
* valops.c (typecmp): improve prototype matching when calling
a method. Make 'p (*(ostream *) &cout) << "lll" ' to work.
* eval.c(evalute_subexp): fix operator search problem when call
like p x.'operator+'(i).
* Makefile.in: (HFILES,TAGFILES): Split into _WITH_SRCDIR and
_NO_SRCDIR versions.
(TAGS): Only add srcdir to TAGFILES_NO_SRCDIR.
(This is part of a long saga involving me putting srcdir on
everything (perhaps for now-obsolete reasons, I forget), Rich
removing the srcdir from everything, Stu putting it back some
places for Sun make, and me just now getting around to fixing
`make TAGS' again).
* gdbtypes.c (check_stub_type): On TYPE_FLAG_TARGET_STUB, do
what cleanup_undefined_types does for arrays, except we clear
TYPE_FLAG_TARGET_STUB if we fix up the type.
* stabsread.c (cleanup_undefined_types): Add comments about how
doing arrays here is no longer the clean way to do it.
(read_array_type): Set TYPE_FLAG_TARGET_STUB as well as calling
add_undefined_type.
* c-typeprint.c, ch-typeprint.c: Move call to check_stub_type
outside switch so it happens for all type codes.
* cp-valprint.c (cp_print_value_fields): Recurse to val_print,
instead of c_val_print, so that check_stub_type gets called.
* gdbtypes.h, gdbtypes.c, m2-lang.c, ch-lang.c, c-lang.c: Remove
TYPE_FLAG_SIGNED. It was inconsistently set, never checked
(except in recursive_dump_type), and is pointless.
ChangeLog stabsread.c
* stabsread.c (patch_block_stabs, define_symbol, read_type): in
g++ template instantiation, nested class can be part of the
params, and '::' can gets into symbol or type names. This is
to fix the problem. (fix pr3837)
* m68k-tdep.c (m68k_saved_pc_after_call): Get rid of
GDB_TARGET_IS_SUN3. Use more general SYSCALL_TRAP macro.
* config/m68k/m68klynx.mh (NATDEPFILES): Remove exec.o (it's
already in TDEPFILES).
* config/m68k/tm-m68k.h (SAVED_PC_AFTER_CALL): Use
m68k_saved_pc_after_call.
* Remove all Sun3 specific stuff.
* (FIX_CALL_DUMMY): Cast arg to bfd_putb32 to unsigned char *.
* config/m68k/tm-m68klynx.h: Define SYSCALL_TRAP as trap #10.
Disable REMOTE_BREAKPOINT mechanism.
* config/m68k/tm-sun3.h: Get rid of GDB_TARGET_IS_SUN3.
* Protect from multiple includion.
* Move Sun3 specific stuff from tm-m68k.h to here.
* Define SYSCALL_TRAP as trap #0.
* Remove def of SAVED_PC_AFTER_CALL (now in tm-m68k.h).
* gdbserver/low-lynx.c: Redo all register store/fetch stuff to
make it portable for 386 and 68k.
registers mentioned in the proc_desc have been saved. This
generalizes mips_in_lenient_prologue in the sense that we keep
searching until we've found saves for all the registers, not just
look for a "lenient prologue" pattern.
* mips-tdep.c: #if 0 lenient prologue code.
* mips-tdep.c (heuristic_proc_desc): Don't assume a host short
is 16 bits.
to print the symbol name.
* stabsread.c (define_symbol): Handle cfront lossage for
struct/union/enums and typedefs.
* partial-stab.h (case N_BINCL): Update psymtab_language
as appropriate when changing subfiles.
(case N_SOL): Update psymtab_language as appropriate when
changing subfiles. Add typedef for structs, unions, and enums
when processing C++ files.
within_function just because local_symbols is NULL. It appears
that this bug has existed since the 10 Apr 89 change which started
clearing within_function here.
* thread.c: Include "gdbcmd.h" and <ctype.h>.
* Makefile.in: Update dependency.
* thread.c (thread_command): Remove unused variable p.
* values.c (unpack_double): Use len instead of TYPE_LENGTH (type).
* valprint.c (print_floating): Correctly check sign bit now that
we are using unsigned arithmetic.
* symtab.c (find_pc_line_range): Remove unused variables exact_match,
ind, and l.
should not try to search for _initialize_* functions.
* remote-udi.c (udi_wait): Change UDIGdb_StdoutReady back to
UDIStdoutReady. It accidentally got changed on 24 Oct 93 when
stdout was changed to gdb_stdout. Likewise for UDIGetStdout,
UDIStderrReady, and UDIGetStderr.
visibility character, just shove it in fip->list->visibility.
(read_baseclasses): Don't give up on unknown virtual or visibility
characters, just assume a reasonable default, complain, and keep
going.
(attach_fields_to_type): Complain on unrecognized visibility.
One result of all this is that '9' (VISIBILITY_IGNORE) can be used
in a stab as well as being something which GDB uses internally.
gdbtypes.h stabsread.c cp-valprint.c ChangeLog
* gdbtypes.h : add a field 'ignore_field_bits in cplus_specific,
and macros to handle the bits.
* stabsread.c (read_one_struct_field): add VISIBILITY_IGNORE, and
for field of length 0, set this bit on.
* cp-valprint.c (cp_print_value_fields): for VISIBILITY_IGNORE
field, print <no value>.
macro to set process groups.
* infptrace.c (child_resume): Temporarily use Lynx PIDGET to
specify resumption of all threads.
* infrun.c (wait_for_inferior): Fix handling of thread-specific
breakpoints for systems where DECR_PC_AFTER_BREAK > 0 (ie: backup
PC by the right amount when continuing the thread).
* thread.c (thread_apply_command): Add the `thread apply'
command to apply a given GDB command to a list of threads.
values.c valops.c ChangeLog
* values.c (value_fn_field): when physical name not found, do not
error, but return null.
* valops.c (value_struct_elt): when name and args match does not
mean it is the one, some times a typedef class can have the same
memeber method and args. This probably will not happen with new
version of g++, but it does happen in old g++ and cause gdb error.
* Makefile.in (udi2go32.o): add rule to build this file
* 29k-share/udi/udi2go32.c: new file
* config/a29k/a29k-udi.mt: add udi2go32.o
* 29k-share/udi/{udr.c, udip2soc.c}: #ifdef out the entire file
if __GO32__ is defined. What a hack.
source_error, source_error_allocated, and source_pre_error.
(command_line_input): If source_file_name set, increment
source_line_number and set error_pre_print with them.
(source_command): Set source_* and make a cleanup so they get
set back.
target_terminal_ours_for_output before attempting output.
* fork-child.c (fork_inferior): Fix comment so that it suggests
"set shell" rather than having "set env SHELL" affect GDB's
operation.
hppa-tdep.c (pa_print_fp_reg), infcmd.c (do_registers_info),
valops.c (value_assign): Use REGISTER_CONVERT_TO_* only if
REGISTER_CONVERTIBLE is defined, otherwise just copy the content.
Pass desired type to REGISTER_CONVERT_TO_*.
* config/m68k/tm-m68k.h, config/i960/tm-i960.h (REGISTER_CONVERT_*):
Pass length of desired type to store/extract_floating.
* config/i386/tm-arm.h, config/i386/tm-i386aix.h,
config/i386/tm-sun386.h, config/i386/tm-symmetry.h,
config/m88k/tm-m88k.h config/rs6000/tm-rs6000.h (REGISTER_CONVERT_*):
Use extract_floating and store_floating with length of desired type.
* config/m68k/tm-news.h (STORE,EXTRACT_RETURN_VALUE): Add type
parameter to REGISTER_CONVERT_*.
* config/a29k/tm-a29k.h, config/convex/tm-convex.h,
config/gould/tm-np1.h, config/gould/tm-pn.h, config/h8300/tm-h8300.h,
config/h8500/tm-h8500.h, config/i386/tm-i386v.h,
config/mips/tm-mips.h, config/ns32k/tm-merlin.h,
config/ns32k/tm-umax.h, config/pa/tm-hppa.h, config/pyr/tm-pyr.h,
config/sh/tm-sh.h, config/sparc/tm-sparc.h, config/tahoe/tm-tahoe.h,
config/vax/tm-vax.h, config/z8k/tm-z8k.h (REGISTER_CONVERTIBLE,
REGISTER_CONVERT_TO_RAW, REGISTER_CONVERT_TO_VIRTUAL): Remove
versions for which REGISTER_CONVERTIBLE is always false.
* z8k-tdep.c (register_convert_to_virtual, register_convert_to_raw):
Remove, no longer used.
* alpha-tdep.c (alpha_register_convert_to_raw,
alpha_register_convert_to_virtual): New routines to handle
the different raw formats in alpha floating point registers.
* config/alpha/tm-alpha.h (REGISTER_CONVERTIBLE,
REGISTER_CONVERT_TO_VIRTUAL, REGISTER_CONVERT_TO_RAW): Use them.
a struct symtab_and_line argument, rather than a symtab and a line.
Re-write it to be based on the address rather than bogusly adding
one to the line number and hoping that has something to do with the
end of the line.
Change all references to stdout/stderr to gdb_stdout/gdb_stderr.
Replace all calls to stdio output functions with calls to
corresponding _unfiltered functions (`fprintf_unfiltered')
Replaced calls to fopen for output to gdb_fopen.
Added sufficient goo to utils.c and defs.h to make the above work.
The net effect is that stdio output functions are only directly used
in utils.c. Elsewhere, the _unfiltered and _filtered functions and
GDB_FILE type are used.
In the near future, GDB_FILE will stop being equivalant to FILE.
The semantics of some commands has changed in a very subtle way:
called in the right context, they may cause new occurences of
prompt_for_continue() behavior. The testsuite doesn't notice anything
like this, though.
Please respect this change by not reintroducing stdio output
dependencies in the main body of gdb code. All output from commands
should go to a GDB_FILE.
Target-specific code can still use stdio directly to communicate with
targets.
right operations ourself, rather than calling symbol_file_command.
If we re-read something, call clear_symtab_users not just
breakpoint_re_set.
* objfiles.h, objfiles.c (build_objfile_section_table): No longer
static.
* symfile.c (clear_symtab_users): Call clear_pc_function_cache.
* coffread.c, dbxread.c, elfread.c, mipsread.c, nlmread.c, paread.c
(*_symfile_offsets): Set objfile->num_sections.
* remote.c (remote_wait), symfile.c (syms_from_objfile):
Don't muck with objfile->num_sections now that all the symbol
readers set it.
* elfread.c: Clean up obsolete comment about handling only DWARF.
* paread.c: Remove comment about how we should use an "ordinary"
file format with an hppa suffix. There is nothing ordinary about SOM.
* Move SWAP_TARGET_AND_HOST from defs.h to findvar.c because it is
now used only by extract_floating and store_floating.
* valprint.c (print_floating): Use unsigned arithmetic. Use
extract_unsigned_integer instead of SWAP_TARGET_AND_HOST.
Change sizeof (float) to 4 and sizeof (double) to 8 (those are always
the relevant sizes for this code, which is in #ifdef IEEE_FLOAT).
* values.c (unpack_long, unpack_double, value_from_double),
valarith.c (value_binop), stabsread.c (define_symbol):
Use extract_floating and store_floating instead of
SWAP_TARGET_AND_HOST.
* config/m68k/tm-m68k.h, config/i960/tm-i960.h (REGISTER_CONVERT_*):
Use extract_floating and store_floating.
* config/m88k/tm-m88k.h: Add comments (it should be doing the same).
* i386-tdep.c (i386_extract_return_value),
* remote-nindy.c (nindy_store_registers): Use store_floating.
Remove John's name and email address. Remove item on "always"
("hook-stop" takes care of this). Remove item on executables with
no symbols (this works on some machines, at least). Remove item
about calling error() during symbol reading (I think all the important
ones have been cleaned up). Revise items about signals and remote
systems. Remove section on ^Z requiring several continues to make
it go (this now works. Perhaps the item is based on confusion over
programs (like GDB itself) which catch SIGTSTP and then re-send
themselves the signal. PR 2575 might contain relevant info).
* remote-mon.c: Remove commented out "set remotedebug" command.
* remote-nindy.c: Clean up comment about wanting alternative to
options specified on the GDB command line.
to increase it broke the ability to write large chunks of memory
with m68k-stub and i386-stub. Now we only use more than 400 on
machines where we need that much to write the registers.
* remote.c (remote_write_bytes): Eliminate possible abort(). The
check for when to abort was off by a few bytes and besides which,
it is handled by MAXBUFBYTES, which the caller uses.
* m68k-stub.c: Add comments about trap #1 and trap #8 instructions.
* breakpoint.c: Include thread.h.
* coffread.c: Include stabsread.h.
* Makefile.in: Update dependencies.
* breakpoint.c (mention): Add bp_call_dummy to switch.
* symmisc.c (dump_symtab): Use %d not %ld for line number.
initialized and uninitialized data sections have the SEC_ALLOC
flag bit set, but only initialized sections have SEC_LOAD set.
SEC_DATA is ignored since it only gets set for initialized
data. Likewise, SEC_HAS_CONTENTS is ignored now because it
never gets set.
* dst.h, dstread.c, config/m68k/{apollo68b.mt,tm-apollo68b.h}:
New files.
* config/m68k/nm-apollo68b.h: Add more defines.
* configure.in: Recognize apollo target, not just host.
cleans up all kinds of hassles (which nm to use in munch, etc). The
new formatting conventions (mostly already followed) are that
the name of the _initialize_* routines must start in column zero,
and must not be inside #if.
* munch: Removed.
* Makefile.in: Remove references to munch.
* serial.c, remote.c, infptrace.c, maint.c, convex-tdep.c,
alpha-tdep.c, hp300ux-nat.c, hppab-nat.c, osfsolib.c, remote-es.c,
procfs.c, remote-udi.c, ser-go32.c, ultra3-xdep.c, sh-tdep.c,
i960-tdep.c, hppa-tdep.c, h8500-tdep.c, dpx2-nat.c, delta68-nat.c,
z8k-tdep.c: Make sure the above conventions are followed. Make
sure they are all declared as returning void. Clean up
miscellaneous comments and such.
* remote.c, remote-udi.c, remote-utils.h: Let target.h take care of
declaring these. Those random externs all over are error prone.
* Move "set remotebaud" from remote-utils.c to main.c to it applies
to remote.c as well.
* xcoffread.c (xcoff_symfile_read), coffread.c (coff_symfile_read):
Sort symtabs for this objfile only, not for all objfiles.
* symfile.c, symfile.h (sort_all_symtab_syms): Remove; no longer used.
remove #include "remote-utils.h". This makes it possible to build
GDB without remote-utils.c. Also, move setting of remote_debug
into main, so that all remote*.c files can use it (not just the
serial line ones). And, make baud_rate be an int.
* remote-udi.c: Change kiodebug to remote_debug.
* remote-utils.c: Move setting of baud rate and debug into main.c.
* remote-utils.h: Redefine sr_{get set}_debug and sr_{get set}_baud
to use baud_rate and remote_debug globals for compatibility.
* remote.c: Use remote_debug and baud_rate globals directly,
instead of sr_ functions, so that we don't need to load
remote-utils.c.
ChangeLog
* values.c (value_virtual_fn_field): Fix the offset calculation
when calling virtual functions. (gdb.t22/virtfunc.exp).
* eval.c (evaluate_subexp): same as above.