collision in C++.
* infcmd.c (path_command): Use empty string if PATH name not set.
* i386-tdep.c (skip_trampoline_code): New function.
* srec.c: Renamed dsrec.c to avoid filename collision.
* Makefile.in: Cope with renaming.
Update copyrights to 1996.
* configure: Update.
* config/powerpc/macos.mh, config/powerpc/macos.mt,
config/powerpc/nm-macos.h, config/powerpc/tm-macos.h, mac-nat.c:
New files, native PowerMac debugging support.
* Makefile.in (mac-nat.o): Add build rule.
* mpw-config.in (enable_cflags): Add support.
(m68k-apple-macos, powerpc-apple-macos): Fix natdepfiles to
list object file instead of source file.
* mpw-make.sed (@ENABLE_CFLAGS@): Don't edit out, replace with
value of variable.
(install, install-only): Edit MPW-specific installation into
place of Unix shell code.
* mac-gdb.r: Fix version resources to use symbolic version strings.
(cfrg): New resource, code fragment for PowerMac.
* ch-exp.c (match_integer_literal): Fix long long support.
* gdbtypes.c (get_discrete_bounds): Make TYPE_LENGTH (type) ==
sizeof (LONGEST) case work OK.
* language.h (LA_BOOL_TYPE): New macro.
* eval.c (evaluate_subexp_standard) Use LA_BOOL_TYPE instead
of builtin_type_int where appropriate,
* valarith.c (value_subscript): Likewise.
* ch-exp.c: New file. Use recursive-descent.
Recognize labelled array tuples and powerset ranges.
* Makefile.in: Update for no longer using yacc for ch-exp.
* c-lang.c: Make various functions non-static.
* c-lang.h: Add bunches of prototypes.
* cp-valprint.c (cp_print_value_fields): Also take address.
(cp_print_value): Likewise. Use baselcass_offset.
* stabsread.c (current_symbol): New static variable.
(type_synonym_name): Remove.
(read_type): If copying, make copy be a TYPE_CODE_TYPEDEF.
(read_array_type): Don't need to handle undefined element type here.
(cleanup_undefined_types): Ditto.
(read_range_type): Look for Chill ranges.
* valops.c (value_assign): Fix case lval_internalvar - don't try
to assign into old value (which might be too small!).
(value_coerce_array): No longer need special VALUE_REPEATED handling.
(value_arg_coerce): Cleaner array->pointer decay mechanism.
(search_struct_field): Use baseclass_offset rather than
baseclass_addr.
(value_slice): Use get_discrete_bounds.
* value.h (COERCE_VARYING_ARRAY): Take type argumnt as well.
* values.c (baseclass_offset): Change parameter interface.
(baseclass_addr): Removed.
* c-typeprint.c, c-valprint.c, ch-valprint.c, values.c, valops.c:
Add check_typedef/CHECK_TYPEDEF as needed.
Add check_typedef/CHECK_TYPEDEF as needed.
* f-typeprint.c: Various cleaning up.
* valarith.c (value_subscript): Also subscript bitstrings (for Chill).
* typeprint.c (print_type_scalar): Also support TYPE_CODE_RANGE.
* eval.c (evaluate_subexp_standard case OP_ARRAY): Implement
support for labelled array tuples and ranges in powerset tuples.
(init_array_element): New function.
(check_typedef): New prototype.
(CHECK_TYPEDEF): New macro.
(TYPE_DUMMY_RANGE): Removed.
* gdbtypes.c (get_discrete_bounds): Fix paren error; make more robust.
(create_array_type): Don't force_to_range_type; users of the
array are responsible for handling non-range index types.
(create_set_type): Likewise.
(force_to_range_type): Removed.
(check_typedef): New function handles stub types and typedefs.
(check_stub_type): Just call check_typedef. (To be removed.)
(recursive_dump_type): Handle TYPE_CODE_TYPEDEF.
* ch-lang.c (type_lower_upper): Use get_discrete_bounds.
(evaluate_subexp_chill): Handle string repetition.
Re-arrange to handle EVAL_AVOID_SIDE_EFFECTS better.
* ch-typeprint.c (chill_type_print_base): Handle TYPE_CODE_TYPEDEF.
Pass show=0 in recursive calls various places.
(case TYPE_CODE_ARRAY): Don't require index type to have
TYPE_CODE_RANGE.
(case TYPE_CODE_RANGE): Don't need to support TYPE_DUMMY_RANGE.
* gdbtypes.c, ch-lang.c, ch-typeprint.c (numerous places):
Add check_typedef/CHECK_TYPEDEF as needed.
(CC_FOR_TARGET, CXX_FOR_TARGET): Use it to find target libraries.
* configure.in (X_CFLAGS): Fix typo.
(target_subdir): Set to "${target_alias}/" if cross.
* configure.in: Regenerated.
Recognize enums from alpha cc -migrate.
(upgrade_type): Pass correct fd to parse_symbol when parsing
the index type of an array.
(parse_procedure, parse_lines, psymtab_to_symtab_1): Handle
unsorted procedure descriptors from Irix 5.x and Alpha OSF/1-3.x
shared libraries. Use CORE_ADDR instead of `unsigned long' in
procedure descriptor address computations.
* symtab.c (decode_line_1): Prevent accidental strchr match
of a null character with the terminating null character of
gdb_completer_quote_characters.
(cplusplus_hint): Make sure that only a single quote is printed
in the hint message.
Also force HAVE_MMAP to be defined since autoconf is currently broken
for detecting a working mmap under hpux.
* config/pa/xm-hppah.h (MMAP_BASE_ADDRESS): Tweak MMAP_BASE_ADDRESS
to a better value suggested by Jeffrey A Law (law@cygnus.com).
trampolines. These are pieces of code between the caller and the
callee that figure out the address of the callee's code at run
time. Upon entry, we can't figure out the callee's address, so we
set a breakpoint within the trampoline where the address will be
known, and continue the target. Once we hit the breakpoint, we
break at the callee's address and proceed as usual.
start-sanitize-gm
* config/tm-magic.h: Define DYNAMIC_TRAMPOLINE_NEXTPC. Turn off
IN_SOLIB_CALL_TRAMPOLINE and IN_SOLIB_RETURN_TRAMPOLINE.
end-sanitize-gm
symbol tables so that it is obvious that they are not supported on
this particular machine rather than implying they are not supported
at all in this version of gdb.
* solib.h (PC_SOLIB): New macro; define using solib_address.
* stack.c (print_frame_info) [PC_SOLIB]: If no function name, try
PC_SOLIB on the PC value.
S-record download code into srec.c.
* srec.c srec.h: New files. Contain S-record loading routines
formerly in monitor.c.
* serial.c serial.h: New routine just like fprintf, but uses
serial_t instead of FILE *.
* sh-tdep.c (frame_find_saved_regs init_extra_frame_info):
Don't add four to saved pc (makes things match manual). Also, fix
bug where we didn't get pc from stack frame correctly.
* config/sh/tm-sh.h (SAVED_PC_AFTER_CALL): Don't add four to
saved pc. Real hardware does this for you.
* sh3-rom.c (sh3_load): New routine. Sets up for download then
calls generic S-record loader.
* config/h8300/h8300.mt, config/h8500/h8500.mt,
config/m68k/monitor.mt, config/pa/hppapro.mt, config/sh/sh.mt:
Add srec.o to TDEPFILES.
NOTE: Only the BigEndian build has the simulator included, because a
LittleEndian simulator is not constructed at the moment (it should
work, but has not been tested fully).
Jamie. Basically had case statement in the wrong place...
* (mips_load): Remove unnecessary `db tty0' command. It's all
handled by mips_initialize now.
monitor board.
The mips_initialize() code seemed to have a "funny" switch
statement. I also removed an unnecessary switch into debug monitor
mode just before the call to mips_initialize() in mips_load().
* fork-child.c (fork_inferior): Add call to
TARGET_CREATE_INFERIOR_HOOK to allow target specific code to get
control just before the new process executes it's first instruction.
* remote-mips.c (mips_initialize): Cleanup a bit. Don't try to
receive a packet at first. This speeds up initialization a lot.
Use TARGET_MONITOR_PROMPT instead of "<IDT>".
(common_breakpoint): Use rresponse instead of rerrflg to inspect
error code.
* symfile.c (syms_from_objfile reread_symbols): Call
TARGET_SYMFILE_POSTREAD to allow target specific code to get
control after reading new symbols.
* target.h: New macros TARGET_SYMFILE_POSTREAD, and
TARGET_CREATE_INFERIOR_HOOK. See above for descriptions.
* config/mips/{irix5.mh nm-irix5.h}: Delete nm-irix5.h. Make
NAT_FILE point directly at ../nm-sysv4.h.
* config/mips/{mipsm3.mh nm-m3.h}: Delete nm-m3.h. Make
NAT_FILE point directly at ../nm-m3.h.
* config/mips/{mipsv4.mh nm-sysv4.h}: Delete nm-sysv4.h. Make
NAT_FILE point directly at ../nm-sysv4.h.
* config/mips/nm-mips.h: Improve comment at top of file.
* config/mips/tm-mips.h (TARGET_MONITOR_PROMPT): Change
definition into a proper string.
start-sanitize-gm
* configure configure.in: Add support for --enable-gm.
(mips*-*-magic*): Change target from magic to idt.
* eval.c expprint.c expression.h parse.c remote-mips.c utils.c:
Change GENERAL_MAGIC_HACKS to GENERAL_MAGIC.
* magic.c magic.h: Update files from GM.
* config/mips/magic.mt: Delete. No longer necessary now that we
use --enable mechanism.
* config/mips/tm-idt.h: Add GM stuff needed for remote GM box.
* config/mips/tm-irix5.h: Add GM stuff needed for native Irix box.
* config/mips/tm-magic.h: Move up to config/tm-magic.h. Move all
platform specific stuff into tm-irix.h and tm-idt.h. Add defs for
TARGET_SYMFILE_POSTREAD and TARGET_CREATE_INFERIOR_HOOK.
end-sanitize-gm
for all i386 targets, but only assume floating point values returned
in floating point registers for I386_AIX_TARGET.
* i386v-nat.c (i386_register_u_addr): Enable code to locate
floating point regs in user struct.
* defs.h: Test on name __WIN32__ rather than WIN32.
* inflow.c (new_tty): Likewise
* terminal.h: Likewise.
* utils.c (initialize_utils): Likewise.
* win32-nat.c (child_create_inferiror): Print error code when failing.
* config/i386/win32.mh (XM_CLIBS): Need -lkernel32.
a location whose address has to be resolved via the minimal
symbol table.
* buildsym.c (finish_block), findvar.c (symbol_read_needs_frame,
read_var_value), printcmd.c (address_info),
symmisc.c (print_symbol, print_partial_symbol): Handle
LOC_UNRESOLVED.
* stabsread.c (scan_file_globals): Change unresolved LOC_STATIC
symbols to LOC_UNRESOLVED. Remove rt_common_objfile lookup
kludge, global common symbols are now handled by LOC_UNRESOLVED.
(scan_file_globals_1): Move code back to scan_file_globals,
delete.
around calls to create_longjmp_breakpoint. Why install the
breakpoints if we can't find the longjmp target?
* infrun.c (wait_for_inferior): Cleanup comments near call test.
* remote-mips.c: Fixed a bunch of prototypes to avoid char/int
complaint from picky compilers. Add comment to mips_expect.
Replace all instances of sr_get_debug with remote_debug.
* (mips_readchar): Don't jam init string to monitor.
mips_initialize() handles that.
* (mips_receive_header): Print better message when we get too
much garbage.
* (mips_request): Allow caller to pass in buff to allow them to
analyze the returned message.
* (mips_initialize): Re-do initialization to try sending a BREAK,
a ^C, and then a download escape sequence. Cleanup protocol
startup. Eliminate sleeps. Clear breakpoints (if using monitor
breakpoints). Re-init frame.
* (mips_detach): Close down target.
start-sanitize-gm
* (mips_resume): Pass signal down to target.
* (mips_create_inferior): Start target with TARGET_SIGNAL_PWR.
end-sanitize-gm
* (mips_wait): Handle return status with registers, or breakpoint stuff.
* (mips_kill): Add ^C handling.
* (mips_insert_breakpoint mips_remove_breakpoint): Call new
breakpoint stuff if enabled.
* (calculate_mask remote_mips_set_watchpoint
remote_mips_remove_watchpoint remote_mips_stopped_by_watchpoint):
Hardware watchpoint/breakpoint stuff.
* (common_breakpoint): Common code for new monitor breakpoint commands.
* (mips_load): Don't use `prompt'. It's a global variable.
* top.c (dont_repeat_command): New command for use in
user-defined commands to suppress auto-repeat (by hittin return key).
start-sanitize-gm
* utils.c (request_quit): Call target_kill here. Good idea.
Needs a better implementation.
end-sanitize-gm
* valops.c: Add start of auto function-call abandonment capability.
start-sanitize-gm
* c-exp.y: Add code (currently disabled) to handle GM dynamic
structures (it conflicts with @!).
* eval.c (evaluate_subexp_standard): ditto.
* expprint.c (print_subexp dump_expression): ditto.
* expression.h (enum exp_opcode): ditto.
* parse.c (length_of_subexp): ditto.
* configure, configure.in: Add mip*-*-magic* target.
* magic.c magic.h: Special routines to handle GM stuff (like
stepping through dispatcher).
end-sanitize-gm
of native support.
* mpw-make.sed: Disable subdir recursion, edit out useless rule.
* mac-xdep.c (Values.h): Don't include.
(GestaltEqu.h): Include Gestalt.h instead.
(do_mouse_down): Comment out control tracking, needs to be
updated to use UPP before will work on PowerMac.
* regex.c: Renamed to gnu-regex.c.
* Makefile.in (POSSLIBS): Refer to gnu-regex.h and gnu-regex.c.
(REGEX, REGEX1): Change to gnu-regex.o instead of regex.o.
(regex.o): Renamed to gnu-regex.o; refer to gnu-regex.c.
(irix5-nat.o, osfsolib.o, gnu-regex.o, solib.o, source.o, symtab.o):
Likewise.
* irix5-nat.c, osfsolib.c, gnu-regex.c, solib.c, source.c, symtab.c):
Include "gnu-regex.h" instead of "regex.h".
* alpha-tdep.c (in_prologue): Rename to alpha_in_prologue, to
avoid conflicts with symtab.h.
fixes building gdb under OSF/1 4.0
with the obvious extension. (monitor_read_memory_single): Use
regexp for getmem.resp_delim because of parsing ambiguities caused
by certain monitors. (monitor_read_memory): Use new regexp stuff
to parse getmem.resp_delim.
* sh3-rom.c: Finish off table. Use new regexp capability for
getmem commands.
the step range test. Replace call detection test with much
simpler (and more efficient) test that doesn't require prologue
examination (as often).
* symtab.c symtab.h (in_prologue): New function that indicates
whether or not we are in a function prologue. This uses the
symbol table, and then falls back to prologue examination if that
fails. It's much more efficient for remote debugging because it
avoids examining memory, which is very slow. This is used in
wait_for_inferior to determine if we've made a function call that
needs to be skipped over (for next/nexti).
* mips-tdep.c (after_prologue): New function, returns the PC
after the prologue. Uses PDRs and the symbol table.
(mips_find_saved_regs): Use in_prologue() to avoid costly
prologue examination if possible.
(mips_skip_prologue): Use after_prologue() if possible to avoid
costly prologue examination.
Do not set saved registers from heuristics for a sigtramp frame.
* dwarfread.c (enum_type): Determine signedness of enum type
from enumerators.
* mips-tdep.c: Include gdb_string.h, gcc -Wall lint.
* rs6000-nat.c (xcoff_relocate_core): Fix typo.
* valops.c (value_repeat): Fix length of memory transfer to
match recent allocate_repeat_value change.
build config.h, add empty definitions to mk.tmp.
(powerpc-apple-macos): Make it work.
* mpw-make.sed: New file, sed commands to translate Unix makefile
into MPW syntax.
* mpw-make.in: Remove.
* mac-gdb.r: New file, was macgdb.r, renamed for consistency
with other tools, now includes cfrg resource.
* macgdb.r: Remove.
* config/m68k/xm-mpw.h: Remove most of contents, replace with
include of include/mpw/mpw.h.
_initialize_array to array_open. It was forcing the baud rate of
all targets to be 4800 baud! Seems like I've fixed this before...
* config/mips/idt.mt (TDEPFILES): Remove remote-array.o. This
has *nothing* to do with IDT!!!
sh3 monitor support.
* monitor.c: Cleanup regexp compilation stuff to make it easier
to use several regexps.
* monitor.h: Get rid of struct rom_cmd_data. It's no longer used.
* config/m68k/tm-monitor.h: Don't redefine NUM_REGS here. It just
causes GDB to crash.
screws up too many targets.
* sparcl-stub.c: Add prototypes to many forward decls.
* Create private copies of strlen, strcpy, and memcpy to prevent
chaos when user steps into them.
* (trap_low handle_exception): Clean up DSU support code
(hardware breakpoints). Move lots of stuff from asm-land to
C-land (make it much easier to #ifdef if necessary). Also, use
trap 255 to get into break mode instead of doing a DSU register
write, which may trash the register.
* (putpacket): Don't check return value of putDebugChar. It
returns void...
mentioned in the dld_list can't be found.
Warning seems more reasonable than croaking.
* config/pa/tm-hppah.h (FRAME_SAVED_PC_IN_SIGTRAMP): Dig out
the PC from the PC queues rather than %r31.
Fixes net bug. Might also fix one of the hpux10 corefile.exp failures,
not sure (will test when I get back monday morning).
fondling macros.
* (trap_low): Save and restore FP regs if necessary. Also, clean
up save and restore of debug unit regs.
* (hard_trap_info): Add more architecturally defined traps.
* (set_debug_traps): Only set FP disabled trap if FP is disabled.
* (get_in_break_mode): Clean up. Get rid of calls to
set_hw_breakpoint_trap(). Also, use write_asi macro
* (handle_exception): Clean up `g' and `G' commands. Add `P'
command.
* (hw_breakpoint): Why was this here!? It's gone now...
* callback.c (fdbad): Fix typo in comment.
(os_close, os_isatty, os_lseek, os_read, os_write): Use if statements
rather than || to get correct return value.
(os_write_stdout): Pass missing first argument to os_write.
* remote-sim.c: Include callback.h.
(_initialize_remote_sim): Call sim_set_callbacks and then initialize
the callbacks.
a value of that type; use that instead of setting VALUE_REPEATED.
* value.h (struct value): Remove fields repetitions and repeated.
(VALUE_REPEATED, VALUE_REPETITIONS): Removed, no longer used.
* c-valprint.c, ch-valprint.c, eval.c, printcmd.c, valops.c,
value.h, values.c: Simplify, since now VALUE_REPEATED is never used.
* valprint.c (value_print_array_elemen): Removed never-used function.
* expprint.c (print_subexp): Add OP_NAME support.
* parse.c (length_of_subexp, prefixify_subexp): Likewise.
* scm-lang.c (scm_unpack, in_eval_c, scm_lookup_name): new function.
* scm-lang.h: Declare builtin_type_scm; other minor tweaks.
* values.c (unpack_long): If type is SCM, call scm_unpack.
* scm-valprint.c (scm_val_print): Use extract_signed_integer,
instead unpack_long
* scm-lang.c: More Scheme expression parsing from here ...
* scm-exp.c: ... to here. New file.
Also, provide for gdb to evaluate simple constants and names..
* Makefile.in: Note new scm-exp.{c,o}.
(force_to_range_type): Use get_discrete_bounds.
* gdbtypes.h (get_discrete_bounds): Add declaration.
* valarith.c (value_bit_index): Generalize to use get_discrete_bounds.
* ch-valprint.c (chill_val_print): Make (power)sets and bitstring
support use get_discrete_bounds and generally be more robust.
This fixes PR chill/8136.
* scm-valprint.c: ... this new file.
Also major improvements in support for printing SCM values.
* scm-lang.h: New file.
* scm-tags.h: New file.
* Makefile.in: Note new scm-valprint.{c,o}.
* callback.[ch]: New files.
* remote-rdp.c: Support for the ARM RDP monitor.
* Makefile: Update.
* arm-tdep.c (arm_othernames): New.
(_initialize_arm_tdep): install 'othernames' command.
(arm_nullified_insn, shifted_reg_val, arm_get_next_pc): New.
* configure.in: Check for termios.h, termio.h and sgtty.h.
(i[345]86-*-win32*): New host.
* configure: Regenerated.
* inflow.c: Clean up inclusions.
* main.c (main): Check for WINGDB, not WIN32.
* printcmd.c (do_examine): Put QUIT test in loop.
* remote-hms.c (e7000_load): Delete.
(hms_ops): Point to generic_load instead.
* remote-hms.c (hms_ops): Point to generic_load.
* remote-sim.c (sim_callback_write_stdout): Becomes
gdbsim_write_stdout.
(gdbsim_load): Call generic_load.
* remote-utils.c (gr_load_image): Delete.
* ser-unix.c (terminal.h): Include instead of havig
own #if tree.
(hardwire_flush_input): Reset input buffer too.
* source.c (openp): If WIN32 then open file in binary mode.
* terminal.h: Configure IO mechanism using autoconf defines if available and
not overriden.
* utils.c (quit, pollquit, notice_quit): WIN32 check becomes WINGDB check.
* config/arm/arm.mt (TDEPFILES): Add remote-rdp.o
* config/arm/tm-arm.h (TARGET_BYTE_ORDER): becomes TARGET_BYTE_ORDER_SELECTABLE.
(ADDR_BITS_REMOVE): New.
(ORIGINAL_REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): New.
(INST_xx): New
(FRAME_FIND_SAVED_REGS): Pass the right argument.
(arm_get_next_pc): Declare.
* mswin/prebuilt/*/bfdtarget.h (SELECT_ARCHITECTURES): Need leading &.
structure tuples. Now also handles Chill variant records.
(get_label): New function, used by evaluate_struct_tuple.
(evaluate_subexp_standard case OP_ARRAY): Use evaluate_struct_tuple.
(evaluate_labeled_field_init): Removed.
* valops.c (search_struct_field): Generalize to work with Chill
variant records.
and dependencies_used after finishing the partial symbol table.
* rs6000-nat.c (xcoff_relocate_core): Don't relocate data
addresses for the main objfile if DONT_RELOCATE_SYMFILE_OBJFILE
is defined.
* xcoffread.c: gcc -Wall lint. Remove traceback table reading
code. The existing code tried to add parameter information for
functions compiled without -g, which cannot be done properly
for optimized code and produced misleading parameter displays.
(ef_complaint, eb_complaint): Make a local static copy to avoid
dependency on coffread.c.
(read_xcoff_symtab, process_xcoff_symbol, scan_xcoff_symtab):
Enter C_EXT/C_HIDEXT symbols into the minimal symbol table only.
(read_xcoff_symtab): Ignore C_STAT section auxiliary entry
symbols. Complain about unmatched .ef and .eb symbols instead of
segfaulting.
(process_xcoff_symbol): Determine value of C_GSYM symbols via
the global_sym_chain mechanism in stabsread.c.
(xcoff_new_init): Call stabsread_new_init and buildsym_new_init.
(init_string_tab): Initialize length field bytes in the strtbl.
(scan_xcoff_symtab): Skip symbols that start with `$' or `.$'.
Set first_fun_line_offset for symbols with two auxents only.
* valops.c (value_bitstring): TYPE_LENGTH is bytes, not bits.
* gdbtypes.c (force_to_range_type): Calculate upper limit of
TYPE_CODE_CHAR depending on TYPE_LENGTH (instead of just using 255).
solib.c to symfile.c.
* solib.c: ditto.
* symfile.h: Add extern declaration of the above mentioned variable.
* infcmd.c: Take out extern declaration, since it's in symfile.h.
(som_solib_create_inferior_hook): Don't add libraries if
auto_solib_add_at_startup is zero.
(_initialize_som_solib): Add command to toggle
auto_solib_add_at_startup.
* tm-ppc-eabi.h (PC_IN_CALL_DUMMY): Redefine this to work with the
simulator. FIXME.
* rs6000-tdep.c (push_dummy_frame): Calculate the correct link
register offset from the current frame (don't assume it is always 8).
(push_dummy_frame): Add comment about having only 4096 bytes of
stack space in the simulator (by default).
* remote-sim.c (gdbsim_create_inferior): Call
`add_text_to_loadinfo' so that gdb can find TOC entries when
calling functions in the inferior.
With this changes, it is now possible to correctly call inferior
functions in the PPC simulator.
* configure: Rebuilt.
* symtab.c (list_symbols): Add missing blank after
`<function, no debug info>' output.
* valops.c (value_assign): Handle truncation when assigning
to bitfields. Use value_copy to construct the return value
from toval.
* values.c (value_copy): Copy VALUE_FRAME and VALUE_OPTIMIZED_OUT.
spot different prompts at run-time, so as to avoid having target
specific versions of gdb. This is a pending TODO.
Fri Sep 1 08:25:50 1995 James G. Smith <jsmith@beauty.cygnus.com>
* configure (mips64*vr4300*-*-elf): Support added.
* remote-mips.c (mips_readchar): Change to allow build-time prompt
string.
* config/mips/tm-mips.h: Added TARGET_MONITOR_PROMPT.
* config/mips/{vr4300.mt, vr4300el.mt, tm-vr4300.h,
tm-vr4300el.h}: Added.
Determine signedness of enum type from enumerators.
(parse_type): Handle btIndirect types, handle fBitfield for
some non-member types.
(upgrade_type): Use TYPE_FLAG_TARGET_STUB for arrays with
unknown length.
(cross_ref): Handle stIndirect forward reference to btTypedef.
* stabsread.c (read_enum_type): Determine signedness of enum
type from enumerators.
* top.c (execute_command): Remove trailing whitespace from
command arguments, except for `set' and `complete' commands.
(validate_comname): Allow underscores in user defined command
names.
* values.c (modify_field): Change `Value does not fit in %d bits'
error to a warning. Exclude sign extension bits of negative field
values from fit check.
problems than it fixes.
* hppa-tdep.c (skip_prologue): If we exit the main loop without
finding all the register saves, retry again without looking for
the registers we could not find the first time.
Better fix for 7768.
calls "main" directly.
(skip_prologue): Always assume arguments were saved into the stack
since GCC will do so without setting the magic Args_Saved bit in
the unwind descriptor.
* config/rs6000/xm-rs6000.h (FIVE_ARG_PTRACE): Likewise.
So we can build under aix4 with an ansi compiler (should not effect aix3
since aix3 doesn't have a ptrace prototype).
of aix4 need different handling than aix3.
* configure: Updated.
* config/powerpc/{aix4.mh,aix4.mt,tm-ppc-aix4.h}: New files
specific to aix4 support on the power pc.
* config/powerpc/tm-ppc-aix.h (DONT_RELOCATE_SYMFILE_OBJFILE): Do
not defined. The aix4 specific target files will do that.
* config/rs6000/{aix4,mh,aix4,mt,tm-rs6000-aix4.h}: New files
specific to aix4 support on the rs6000.
* config/rs6000/tm-rs6000.h (CONVERT_FROM_FUNC_PTR_ADDR): Don't
do the conversion if the pointer is not a magic aix function
pointer.
* rs6000-tdep.c: Include objfiles.h and symtab.h.
(is_magic_function_pointer): New function.
* rs6000-tdep.c (skip_prologue): Refine check for frameless
functions. Handle b .+4 emitted by aix4 compilers. Only
allow one load of a minimal toc pointer. Handle aix4 compiler's
code for alloca.
* rs6000-tdep.c (find_toc_address): Report an error if no toc was
found rather than possibly core dumping.
* partial-stab.h: Handle extra field generated by the aix4 compiler
for enumerations.
* stabsread.c (read_enum_type): Likewise.
and target.
(powerpc-*-eabi*): Don't set configdirs.
(powerpcle-*-eabi*0: Likewise.
* configure: Updated.
* rs6000-nat.c (vmap_ldinfo): Don't relocate data addresses
for the main objfile if DONT_RELOCATE_SYMFILE_OBJFILE is
defined.
* config/powerpc/{aix.mh,aix.mh}: Host and target makefile fragments
for powerpc running aix4.
* config/powerpc/{nm-aix.h, tm-ppc-aix.h, xm-aix.h}: Native, target
and host include files for powerpc running aix4.
More of Mike's powerpc work + minor changes.
(SKIP_TRAMPOLINE_CODE): Define.
* alpha-tdep.c (alpha_frame_saved_pc): Use pc_reg field from
frame to find the saved pc register.
(alpha_saved_pc_after_call): Skip over shared library trampoline
before trying to find the saved pc register.
(find_proc_desc): Copy PROC_PC_REG from found proc_desc
to heuristic proc_desc.
(init_extra_frame_info): Initialize pc_reg field in frame.
values whose length is less than the register size for big endian
targets.
* alpha-tdep.c (alpha_extract_return_value,
alpha_store_return_value): Use alpha_convert_register_to_*
to handle functions returning "float" correctly.
read_next_frame_reg to alpha_find_saved_regs, handle saved
floating point registers.
* mips-tdep.c: Move sigtramp handling of saved registers from
read_next_frame_reg to mips_find_saved_regs, handle saved
floating point registers.
* config/mips/tm-irix3.h, config/mips/tm-irix5.h,
config/mips/tm-mipsv4.h (SIGFRAME_FPREGSAVE_OFF): Define.
* sparc-tdep.c (sparc_pc_adjust): Fix check for `unimp'
instruction to handle functions returning structures with
large sizes properly.
and for thread_alive change from a couple weeks ago.
(extended_remote_ops): Declare and define a new target vector
for the extended remote protocol.
(extended_remote_restart): New function to restart the remote
server & process.
(remote_open): Just a stub routine.
(extended_remote_open): New function to start a remote session
using the extended gdb remote protocol.
(remote_open_1): New function containing code common to both
remote_open and extended_remote_open.
(remote_mourn, extended_remote_mourn, remote_mourn_1): Similarly.
(extended_remote_create_inferior): New function for the extended
remote target.
(initialize_remote): Add the extended_remote_ops target vector.
* gdbserver/server.c (main, case '!'): Set extended_protocol.
(main, case 'k'): If the extended protocol is in use, kill the
inferior then start a new one.
(main, case 'R'): New command to restart the remote server and
inferior process. Only supported when using the extended
protocol.
(main, server loop): If the inferior terminates while using the
extended protocol then start a new one. If getpkt fails when
using the extended protocol then exit.
New extended remote gdb protocol support; intended mainly for use with
the gdbserver testing framework that I'll be checking in soon. Also
useful for interactive remote debugging since it supports "run".
means the process is single threaded, so there's no need to add
it to the thread list. Handle case where multi-threaded process
reverts back to a single-threaded process.
* infrun.c (wait_for_inferior): Set the convenience variable
$_exitcode to the termination code of the inferior.
* top.c (quit_command): Accept optional expression to use
as parameter to exit().
* gdbserver/Makefile.in (SFILES): Add low-hppabsd.c.
* config/hppabsd.mh (XDEPFILES): Add ser-tcp.o
(GDBSERVER_DEPFILES): Add low-hppabsd.o
* config/hppaosf.mh: LIkewise.
Needed this for the gdbserver framework development. Trying to avoid doing
development work on lynx for the obvious reasons.
* gdbserver/Makefile.in (SFILES): Add low-hppabsd.c.
* config/hppabsd.mh (XDEPFILES): Add ser-tcp.o
(GDBSERVER_DEPFILES): Add low-hppabsd.o
* config/hppaosf.mh: LIkewise.
Needed this for the gdbserver framework development. Trying to avoid doing
development work on lynx for the obvious reasons.
to char, since everything passed in and out of dcache is char or casted
to appropriate type anyway.
(dcache_alloc): Move assignment of db out of test and combine separate
tests into if-else.
(dcache_peek_byte): Change ptr from unsigned char* to char*.
(dcache_peek_byte): Remove now unnecessary cast in read_memory call.
(dcache_peek): Change cast of incoming data arg.
(dcache_poke): Change cast of addr of incoming data arg.
(dcache_info): Mask data passed to printf_filtered to lsbyte only.
(dcache_info): Change printf_filtered arg from "% 2x" to " %2x".
* target.c (debug_to_thread_alive): Change return type to int and
return zero, for type compatibility with other *_thread_alive funcs.
(cleanup_target): Change cast of ignore function to match type of the
to_thread_alive member.
* defs.h (error_hook): Add ATTR_NORETURN.
* defs.h (NORETURN, ATTR_NORETURN): Switch from volatile to
__attribute__ method with gcc 2.7, to avoid gcc 2.6.3 bug.
* remote.c (remote_wait): Cast first arg to strtol, strchr, and strncmp
to "const char *" from "unsigned char *".
(remote_wait): Cast arg to putpkt and strcpy from "unsigned char *" to
"char *".
(remote_wait): Change printf format for long arg from "%d" to "%ld".
(getpkt): Remove unused variable "bp".
(remote_fetch_word, remote_store_word): Ifdef out apparently unused
functions.
* breakpoint.c (watchpoint_check): Removed unused variables
"saved_level" and "saved_frame".
* valops.c (value_arg_coerce): Add other enum TYPE_CODE_* and
default cases to switch for completeness.
* infrun.c (wait_for_inferior): Enclose "have_waited" label
in #ifdef that matches the one in which it is referenced.
* ser-unix.c (hardwire_noflush_set_tty_state): Enclose otherwise
unused variable "state" in #ifdef that matches one in which it is
referenced.
* eval.c (evaluate_subexp_standard): Remove unused variable "var".
* eval.c (evaluate_subexp_standard): Remove unused variable "tmp_symbol".
* valarith.c (value_subscript): Remove unused variable "lowerbound",
which is redeclared in a nested scope prior to use.
* printcmd.c (print_frame_nameless_args): Use "%ld" to print long
arg, not "%d".
* {mem-break.c, remote-pa.c, remote.c, saber.suppress}:
Remove unused static var "check_break_insn_size".
* buildsym.c (finish_block): Add other enum LOC_* and default
cases to switch for completeness.
ch-lang.c (type_lower_upper): Removed unused label "retry".
Add other enum TYPE_* and default cases to switch for completeness.
* f-typeprint.c (f_type_print_args): Ifdef out unused function
that may be used someday when Fortran support is complete.
* ch-valprint.c (chill_print_type_scalar): Add other enum
TYPE_* and default cases to switch for completeness.
(chill_val_print): Remove unused local var "high_bound" that
is redeclared in a nested scope prior to use.
(chill_var_print): Use "%ld" to print long arg, not "%d".
* regex.c (re_compile_fastmap, re_match_2): Add remaining enum types
and default to switches for completeness.
* minsyms.c (lookup_minimal_symbol_text): Delete unused variable
"trampoline_symbol".
(prim_record_minimal_symbol_and_info): Return NULL rather than trash.
* elfread.c (elf_symtab_read): Don't dereference NULL returns from
record_minimal_symbol_and_info.
* f-lang.c (saved_function_list_end): Ifdef out unused variable
that may be used someday.
* f-valprint.c (f_val_print): Remove unused local variable "straddr".
(coffstab_build_psymtabs): Remove staboff and stabsize parameters.
Add textaddr, textsize, and stabs parameters.
* gdb-stabs.h (struct dbx_symfile_info): Remove text_sect field.
Add text_addr and text_size fields.
(DBX_TEXT_SECT): Don't define.
(DBX_TEXT_ADDR, DBX_TEXT_SIZE): Define.
* coffread.c: Include <ctype.h>.
(struct coff_symfile_info): Remove stabsect and stabindexsect
fields. Add textaddr, textsize, and stabsects fields.
(coff_locate_sections): Record the address of the .text section,
and total the sizes of all sections with names beginning with
".text". Don't bother to record a .stab.index section (COFF
doesn't use them). Make a linked list of all sections with names
beginning with ".stab".
(coff_symfile_read): Adjust call to coffstab_build_psymtabs for
new parameters.
* dbxread.c (dbx_symfile_read): Use DBX_TEXT_ADDR and
DBX_TEXT_SIZE, rather than getting both from DBX_TEXT_SECT.
(dbx_symfile_init): Set DBX_TEXT_ADDR and DBX_TEXT_SIZE, not
DBX_TEXT_SECT.
(elfstab_build_psymtabs): Likewise.
(stabsect_build_psymtabs): Likewise.
(symbuf_sections, symbuf_left, symbuf_read): New static variables.
(fill_symbuf): If symbuf_sections is not NULL, read symbols from
multiple sections.
(coffstab_build_psymtabs): Remove staboffset and stabsize
parameters. Add textaddr, textsize, and stabsects parameters.
Set DBX_TEXT_ADDR and DBX_TEXT_SIZE, not DBX_TEXT_SECT. Handle
multiple stabs sections.
* os9kread.c (os9k_symfile_read): Use DBX_TEXT_ADDR and
DBX_TEXT_SIZE, rather than getting both from DBX_TEXT_SECT.
(os9k_symfile_init): Set DBX_TEXT_ADDR and DBX_TEXT_SIZE, not
DBX_TEXT_SECT.
PR 7241.
for OSF/1-3.x procfs support.
* configure.in (alpha-dec-osf): Use them when configuring
for OSF/1-3.x.
* configure: Updated.
* target.c: Include <string.h>.
another, save infrun's state for the old thread and load infrun's
previous state for the new thread.
* thread.c (struct thread_info): Add new fields for thread specific
state saved/restored in infrun.c.
(add_thread): Initialize new fields.
(load_infrun_state): New function.
(save_infrun_state): New function.
* thread.h (load_infrun_state): Provide external decl.
(save_infrun_state): Likewise.
More single-stepping patches for lynx-6100.
wrong thread, make sure to write the fixed PC value into the thread
that stopped. Restart all threads after single stepping over a
breakpoint for a different thread.
* breakpoint.c (set_momentary_breakpoint): Make momentary
breakpoints thread specific in a multi-threaded program.
* lynx-nat.c (child_resume): Add some comments. Correctly
choose between the single and multi-threaded step and continue
ptrace calls.
Some of the lynx-6100 single stepping fixes.
should be char *, not unsigned char *.
* dcache.h (memxferfunc): Ditto.
* monitor.c (monitor_write_memory, monitor_read_memory_single):
Ditto.
(monitor_make_srec): Let compiler figure size of hextab.
to the top of child_wait; let the machine independent code in
wait_for_inferior deal with new thread notifications.
lynx-6100 (partial)
Fixes SEGV when multi-threaded program hits a breakpoint in a new
thread.
* monitor.c: Turn on caching.
(monitor_printf): If a ^C was sent, don't expect to see its
echo.
(monitor_open): Enable caching.
(monitor_resume, monitor_load): Flush cache.
(monitor_xfer_memory): Call cache routine.
(monitor_dump_regs): New.
(monitor_fetch_registers): If monitor_dump_regs available
then use it.
(monitor_load): Don't ref exec_bfd if it's NULL.
(monitor_load_srec): Use new monitor_make_srec calling convention.
(monitor_make_srec): Rewrite to cope with two, three and four byte
addresses.
* remote-hms.c (hms_cmds): Initialze end-of-command delim.
* dcache.h, dcache.h: Rewritten.
* remote.c: Reenable caching.
(getpkt): Reduce MAX_TRIES to 3.
(remote_xfer_memory): Use dcache_xfer_memory.
* defs.h (error_hook): New.
* top.c (error_hook): New definition.
* utils.c (error): Use error_hook if initialized.
* sparcl-tdep.c (HAVE_SOCKETS): Don't define if GO32 or WIN32. Use
HAVE_SOCKETS in place of #ifndef GO32.
(INSTRUCTION_NULLIFIED): Allow specific targets to override.
* config/pa/tm-hppao.h (INSTRUCTION_NULLIFIED): Define to work
around losing mach kernel behavior.
* (create_file_win create_asm_win build_framework): Create null
bindings for meta keys to keep window from dropping down to
insertion point when meta is pressed by itself. New bindings:
Up/Down - Scroll up/down one line at a time
Next/Prior - Scroll up/down one page at a time
Home/End - Warp to current pc/end of file
* (build_framework): Turn on breakpoint menu.
* (create_command_window): Implement tab completion. Add binding
for ^C to stop target.
Don't assume the first entry on dld's library list is the main
program. Don't load the same library more than once and don't
consider the main program a shared library.
(som_solib_sharedlibrary_command): New function
(_initialize_som_solib): Add "sharedlibrary" command.
mentor-7135
* remote-hms.c (hms_open): Make static.
* mpw-config.in (MacSerial.h): Copy from version in {CIncludes},
not {MPW}Interfaces:CIncludes.
* ser-mac.c (mac_baud_rate_table): Fix value for 38400 baud.
* expression.h (enum exp_opcode): Added UNOP_LOWER, UNOP_UPPER,
UNUP_LENGTH.
* expprint.c (dump_expression): Handle the new exp_opcodes.
(print_subexp): Handle PREC_BUILTIN_FUNCTION.
(print_simple_m2_func): Removed.
(print_subexp): Remove support for Modula2 builtin functions.
* m2-lang.c (m2_op_print_tab): Add support for builtin functions.
* ch-exp.y: Parse LOWER, UPPER, and LENGTH builtins.
(write_lower_upper_value): Convenience function for LOWER and UPPER.
(upper_lower_argument, length_argument): Removed non-terminals.
* ch-lang.c (chill_op_print_tab): Entries for UPPER, LOWER, LENGTH.
(type_lower_upper): New function. Calculate LOWER/UPPER of type.
(value_chill_length): New function. Calcalate LENGTH of ARRAY/STRING.
(evaluate_subexp_chill): Handle UNOP_LOWER, UNOP_UPPER, UNOP_LENGTH.
This fixes PR 5015 (and 5826 which is a duplicate).
* defs.h: Don't declare strchr and friends if WIN32.
(DIRNAME_SEPARATOR): Move here from source.c.
(SLASH_P, SLASH_CHAR, SLASH_STRING, ROOTED_P): New macros,
symbolic definitions for filename bits.
* top.c (cd_command): Use these.
* source.c (mod_path, openp): Ditto.
* terminal.h: Disable termio/sgtty definitions if WIN32.
* findvar.c (registers_changed): Call registers_changed_hook
if it is defined.
for `watchdog' variable. This allows the user to put an upper
limit on the amount of time that GDB will wait for the target to
return from a step or continue operation. This will primarily be
used for the testsuite, where it is difficult to come up with a
reasonable timeout for things like function calls, which can take
as long as three minutes under some circumstances. If the
watchdog timer expires, GDB will generate an error that looks like
`Watchdog has expired.', and will detach from the target.
* remote-mips.c (mips_open): Setup initial frame from target.
Print it out so that user is told where the program is stopped
when they attach.
* remote-nrom.c: Loads of cleanups. Use serial code to open
network connections. Use expect() to wait for response to
download command.
* ser-tcp.c (tcp_open): Retry connection if we get ECONNREFUSED.
* serial.c serial.h (serial_open serial_fdopen serial_close):
Allow users to open the same device multiple times. They all get
to share the same serial_t. This is about the only way to have
multiple active targets use the same device (for download and
debug).
* sparcl-tdep.c: Keep #include <unistd.h> away from GO32.
* target.c: Add `targetdebug' variable. If this is non-zero,
then a special target is put at the top of the target stack which
will cause all calls through the target vector to have their args
and results printed out.
(codestream_fill): Handle byte order differences.
(setup_prologue_scan): Don't read stdarg function's "sub sp,sp,N".
(arc_get_frame_setup): Read it here.
(arc_frame_saved_pc): And here.
(arc_print_insn): New function.
(arc_set_cpu_type): Set arc_bfd_mach_type. Don't set tm_print_insn.
(_initialize_arc_tdep): Set tm_print_insn to arc_print_insn.
cpufile. Awk is not a utility required by the GNU coding
standards. This change also fixes the rigid whitespace
requirements that were required for awk.
stream for i/o with target board.
Use #error if HAVE_TERMIOS is not defined.
* sparclite/{Makefile.in, configure.in}: Converted to use
autoconf.
* sparclite/configure: New file, generated with autoconf 2.3.
hostfile, targetfile and nativefile. Awk is not a utility
required by the GNU coding standards. This change also
fixes the rigid whitespace requirements that were required
for awk.
* configure: regenerated.
target.h.
* target.h: Macros from breakpoint.c. Conditionalize based on
TARGET_HAS_HARDWARE_WATCHPOINTS.
* i386v-nat.c procfs.c: Use TARGET_HAS_HARDWARE_WATCHPOINTS
instead of TARGET_CAN_USE_HARDWARE_WATCHPOINT to enable watchpoint
code.
* config/i386/nm-linux.h, config/mips/nm-irix4.h,
config/pa/nm-hppab.h, config/sparc/tm-sparclite.h: #define
TARGET_HAS_HARDWARE_WATCHPOINTS to enable watchpoint code.
and stop_pc, and STOPPED_BY_WATCHPOINT code, back where they
were--after the switch statement on w.kind. You can't read the
registers of an inferior which has exited. Use a goto in the
STOPPED_BY_WATCHPOINT code.
* infrun.c (wait_for_inferior): Reinstate
HAVE_STEPPABLE_WATCHPOINT and HAVE_CONTINUABLE_WATCHPOINT code.
remote-mips.c, remote-os9k.c, remote-st.c: Conditionalize use of
stdarg rather than varargs on ANSI_PROTOTYPES not __STDC__; it
must match the definition of PARAMS.
start-sanitize-gdbtk
* gdbtk.c: Likewise.
end-sanitize-gdbtk
* xcoffsolib.c (sharedlibrary_command): New command.
* xcoffsolib.c (solib_info): Call xcoff_relocate_symtab.
* xcoffsolib.c: Miscellaneous cleanups.
* partial-stab.h: Ignore symbol descriptor '-' (for local
variables with negative type numbers) without complaint.
* rs6000-nat.c (vmap_ldinfo): Use bfd_stat rather than our own
local emulation thereof. Remove unused variable ostart.
error message to work with pre-ansi compilers.
(monitor_load_srec): reduced length of s-records from 128 to 32
bytes so download is more reliable with the rom68k monitor.
* rom68k-rom.c: Added trailing space to prompt string.
* config/i386/xm-i386sco.h (HAVE_STRSTR): Removed.
* config/i386/xm-go32.h, mswin/xm.h (SYS_SIGLIST_MISSING):
Removed.
* defs.h, config/{xm-lynx.h, xm-nbsd.h},
config/i386/{xm-i386bsd.h, xm-linux.h},
config/m68k/xm-hp300bsd.h, config/mips/xm-irix4.h,
config/ns32k/xm-ns32km3.h, doc/gdbint.texinfo
(PSIGNAL_IN_SIGNAL_H): Removed.
symbols, their value is the displacement from the procedure address.
* top.c (init_main): Add missing newlines to help strings for
`if' and `while' commands, fix help string for `show commands'.
target.h. Use BP_TEMPFLAG and BP_HARDWAREFLAG instead of
constants.
* infrun.c (wait_for_inferior): Enhance comment near
STOPPED_BY_WATCHPOINT.
* target.h: Macros from breakpoint.c.
config/m68k/m68kv4.mh, config/mips/{irix4.mh, irix5.mh,
mipsv4.mh}, config/sparc/sun4so2.mh (INSTALL): Removed, figured
out by autoconf.
* config/apollo68v.mh (RANLIB): Removed, figured out by autoconf.
* Makefile.in, configure.in: Converted to use autoconf
* aclocal.m4: New file, local autoconf macro definitions.
* configure: New file, generated with autoconf 2.3.
into a variable (__WINSIZE) so that it can be controlled via the
.h file.
* sparclite/sparclite.h: Add SL933 #ifdef to set __WINSIZE to 6
for the 933 board.
trap_expected_after_continue.
* (wait_for_inferior): Fix for remote watchpoints. Don't try to
insert breakpoints while target is running (this only works on
*some* native targets). This may also speed up native watchpoints
considerably.
* symfile.c, symfile.h (init_psymbol_list): New function;
consolidate duplicated copies from os9kread.c, dbxread.c
and dwarfread.c.
* defs.h: Declare info_verbose.
* xcoffread.c: Extensive changes to support psymtabs.
* (unwind_command): Clean it up and make it print things out
nicer.
* monitor.c: Add ^C handling capability (mostly ripped off from
remote.c).
* (monitor_printf): Make it check the command echo.
* (monitor_printf_noecho): Similar to above, but doesn't check
for echo.
* (monitor_stop): No longer waits for prompt. That is the job of
the caller. This makes things work much better for monitor_wait,
which waits for the prompt itself.
* (monitor_open): Deal with new monitor_stop semantics. Also,
flush input after sending init strings to get rid of junk that may
be output. Also, don't always send \r to remote. Use
monitor_ops->line_term cuz proper character isn't always \r.
* (monitor_fetch_register): Switch to completely different
algorithm to deal with lame-ass monitors which put spaces in the
middle of numbers, and prompt with a space!!!!!
* (monitor_read_memory_single): New routine to be used with
monitors that can only return one byte/short/long at a time. This
is selected via MO_GETMEM_READ_SINGLE.
* (monitor_load_srec): Use monitor_printf_noecho for sending S
records. Most targets don't echo them.
* (monitor.h): Get rid of cmd_delim. Add line_delim.
* op50n-rom.c (op50n_cmds): Fill it up. Make it work.
* w89k-rom.c: Change all eols from \r to \n. Change load_resp to
^Q to prevent error message.
* config/pa/tm-hppa.h (CALL_DUMMY (for hppro)): Add special
instruction sequence at end to make restore_pc_queue happy.