merge some HP changes into mainline, describe some previously
undocumented features, describe more of the target commands
available, eliminate obsolete section on renamed commands.
* all-cfg.texi, HPPA-cfg.texi: Remove some obsolete conditionals.
* gdb.base/miscexprs.exp: Change patterns to match GDB's
actual output formatting.
* gdb.base/smoke.exp: GDB removes leading 0's.
* gdb.base/volatile.exp: Don't check type of remuneration;
that variable is no longer defined in constvars.c.
* gdb.base/step-test.c (main): Exit with explicit exit code.
* gdb.base/step-test.exp: Remove two nexti checks--they are
not portable.
* gdb.base/help.exp ("help delete display"): Fix test to match
gdb's output.
* gdb.base/long_long.c (known_types): Initialize values to zero.
* gdb.base/long_long.exp: Step one more line
so 'dec' is initialized in "get to known place". GDB doesn't
prepend unnecessary zeros to the front of numbers. Explicitly
ask for hex formatting. Use unique test case names.
static globals for dealing with binary transmissions.
(remote_write_bytes): Add support for binary downloads
by shadowing the "M" packet with a new "X" packet. This
defaults to ON; if the stub does not understand this, it
will fall back to using "M".
(putpkt): Add support for binary downloading.
* monitor.c (monitor_expect): The mon2000 monitor
on the MSA2000 will also emit random DC1/DC3 chars.
* m32r-stub.c: Change all char's to unsigned char's
to support binary downloading.
(handle_exception): Add support for binary downloading
via a new "X" packet.
(getpacket): Do NOT strip eighth bit of incoming chars.
Watch out for escaped characters in the incoming stream.
(putpacket): Do NOT strip eighth bit of incoming chars.
(bin2mem): New function to write binary data directly to
memory.
* m32r-rom.c: Add new "mon2000" target.
* hp-psymtab-read.c (hpread_build_psymtabs): Coerce first arg
passed to make_cleanup to the correct type.
(hpread_quick_traverse): Change fifth arg to call to
hpread_end_psymtab to be 0.
Compare CURR_MODULE_END to 0 rather than NULL.
Get rid of ifdef'ed out code.
(scan_procs): Get rid of ifdef'ed out code.
* somread.c (som_symfile_read): Coerce first argument passed to
make_cleanup to the correct type.
* hp-psymtab-read.c (do_pxdb): New function. Check whether the
file needs to be processed by pxdb (an HP debug info massaging
tool), if so call it.
(hpread_build_psymtabs): Initialize scan_start to 0 and
simplify flow of control.
* somread.c (som_symfile_read): Add call to do_pxdb (),
in hp-psymtab-read.c.
* symfile.c (symbol_file_add): Remove ifdef'ed out HPUX specific
code.
(symfile_bfd_open): Remove HPUXHPPA ifdef'ed code. Code is now
in hp-psymtab-read.c.
at run-time. At the moment, the only thing this affects is the
set of registers visible.
* config/rs6000/tm-rs6000.h (REGISTER_NAME): Define this as a call
to the function rs6000_register_name.
(rs6000_register_name): Include extern decl.
(NUM_REGS): Bump to 183. What's the right way to do this?
(FIRST_UISA_SP_REGNUM, LAST_UISA_SP_REGNUM): Renamed from
FIRST_SP_REGNUM, LAST_SP_REGNUM.
(REGISTER_BYTES): Recompute this.
* rs6000-tdep.c: Renamed all uses of FIRST_SP_REGNUM and
LAST_SP_REGNUM to FIRST_UISA_SP_REGNUM and LAST_UISA_SP_REGNUM, with
some concomitant formatting changes.
#include "gdbcmd.h", so we can define commands here.
(struct variant): New structure.
(COMMON_UISA_REG_NAMES, PPC_UISA_SPR_NAMES, PPC_SEGMENT_REG_NAMES,
PPC_32_OEA_SPR_NAMES, num_registers): New macros.
(register_names_rs6000, register_names_uisa, register_names_403,
register_names_403GC, register_names_505, register_names_860,
register_names_601, register_names_602, register_names_603,
register_names_604, register_names_750, variants): New variables.
(rs6000_register_name, install_variant, find_variant_by_name,
install_variant_by_name, list_variants, show_current_variant,
set_processor, show_processor): New functions.
(_initialize_rs6000_tdep): Define new commands `set processor' and
`show processor', and call install_variant_by_name to set the
default variant.
* rs6000-nat.c: Renamed all uses of FIRST_SP_REGNUM and
LAST_SP_REGNUM to FIRST_UISA_SP_REGNUM and LAST_UISA_SP_REGNUM, with
some concomitant formatting changes.
* configure.in: Accept the `--with-cpu' flag, to specify a default
processor variant.
* acconfig.h: Provide a blurb for TARGET_CPU_DEFAULT, which is set
by configure's `--with-cpu' flag.
* config.in, configure: Regenerated.
* gdbtk-cmds.c: (gdb_set_bp): Change the "type" argument
to be ASCII instead of an integer. Currently accepts "temp"
or "normal". Fixed error messages.
(gdb_set_bp_addr): Ditto.
* i386-stub.c, m32r-stub.c, m68k-stub.c, sh-stub.c, sparc-stub.c,
sparcl-stub, sparclet-stub.c: Change declaration of putDebugChar
to include explicit void return type as per documentation. Fix up
occasions where stubs erroneously checked return type.
* gdbtk.c (gdbtk_init): Set the fputs_unfiltered_hook to
gdbtk_fputs BEFORE you eval script. The old code was setting it
to null until after you did this, but that is wrong, because it
will cause the output of CAUGHT errors to go to gdb_stderr, which
is wrong. You only want to write errors to the console if the
eval generates an error.
* srcwin.test (click): New function that generates an event
at a location.
(srcwin-4.4): New test. Simulate a click on a line and
check for breakpoint set.
(srcwin-4.5): New test. Right-click on a line and select "Continue
to Here" from popup.
* srcwin.exp: Source srcwin3.test, which will test source window
assembly debugging on executables built without "-g".
so-thresh.linkopts, so-thresh.mk: Move to gdb.hp from gdb.base
(shortening names from solib_threshold.exp etc), won't run on
anything but HP-UX for the foreseeable future.
* gdb.hp/Makefile.in, gdb.base/Makefile.in (clean): Adjust to
reflect move.
* gdbtk-cmds.c (gdb_get_breakpoint_info): When printing addresses,
do not rely on the format string "%lx" -- it does not exist for all
hosts. Use paddr instead.
(gdb_loadfile): Increase maximum line size to pass testsuite cases.
* gdbtk-hooks.c (gdbtk_add_hooks): Remove pc_changed_hook and
add register_changed_hook and memory_changed_hook.
(gdbtk_register_changed): New function.
(gdbtk_memory_changed): New function.
Changes from Keith Seitz <keiths@cygnus.com>
* valops.c (value_assign): Add calls to register_changed_hook and
memory_changed_hook to inform UIs that the user has changed
the target's registers/memory.
* findvar.c (write_register_gen): Remove call to pc_changed_hook.
* defs.h: Remove declaration for pc_changed_hook and
add declarations for register_changed_hook and
memory_changed_hook.
* top.c: Ditto.
* gdbtk.c (gdbtk_init): Create tcl warp_pointer command
for use with testing.
* gdbtk-cmds.c (gdb_loc): Fix for case where there are only
minimal symbols. Also make gdb_loc return the shared library
the location is in, if it is in one.
* tui.h: Include stdarg.h instead of varargs.h if we're on an ISO Cish
system.
Without this you'll get a build failure in gdbtk.c because it includes
stdarg.h but tui.h includes varargs.h; gdbtk.c tries to use va_start
and things die.
v850_register_names, v850_processor_type_table): Declare tables
and structures for handling differences in register names for
v850 and v850e.
(struct reg_list): Define new structure for creating tables
of register bit masks in v850e instrutions.
(handle_prepare, handle_pushm): New helpers for v850_scan_prologue.
(v850_scan_prologue): Recognize v850e instructions: callt, prepare,
and pushm.
(v850_target_architecture_hook): New function to set register
names based on current machine.
(_initialize_v850_tdep): Set up target_architecture_hook.
* config/v850/tm-v850.h (v850_register_names): Declare.
(REGISTER_NAME): Define to refer to v850_register_names.
(SR0_REGNUM, CTBP_REGNUM): Define.
(PS_REGNUM): Redefine in terms of SR0_REGNUM.
* Makefile.in (c-exp.tab.c): use BISON instead of YACC, to pick
the correct value from configure output.
(jv-exp.tab.c): ditto.
(f-exp.tab.c): ditto.
(m2-exp.tab.c): ditto.
* breakpoint.h (ep_is_exception_catchpoint): Add prototype.
* frame.h (select_and_print_frame): Add prototype.
* stack.c (func_command): Call select_and_print_frame with correct
number of arguments. Reformat whitespace.
As far as I can tell, the func command (only enabled in --dbx mode) doesn't
actually work right now, even with this rather glaring fix. I'm not going
to spend time on it; dbx mode looks pretty seriously broken after a five
second glance.
* remote-mips.c (mips_initialize): Fix parameters to clear_breakpoint.
(common_breakpoint): Restore support for instruction breakpoints
on non-LSI targets.
* top.c (init_main): Fix tipo in description of the remotetimeout
variable.
* breakpoint.c (bpstat_stop_status): Handle systems where
DECR_PC_AFTER_BREAK != DECR_PC_AFTER_HW_BREAK.
init only nonzero fields, leave to_require_attach and
to_require_detach empty, not needed for /proc systems yet.
(_initialize_procfs): Call init_procfs_ops.
* h8300-tdep.c (original_register_names, h8300h_register_names,
h8300_register_names): Define new variables.
(set_register_names): New function to set register names based on
current CPU type.
(h8300_command, h8300h_command, h8300s_command): Call
set_register_names.
* config/h8300/tm-h8300.h (h8300_register_names): Declare.
(REGISTER_NAME): Define to refer to h8300_register_names.
* acinclude.m4: New file, containing the hand-written local macro
definitions that used to be in aclocal.m4. Don't sinclude
../bfd/aclocal.m4 any more; running aclocal in this directory will
get us the definitions we need. HOWEVER: Do sinclude
../bfd/acinclude.m4, because we need the definition of
BFD_NEED_DECLARATION.
* aclocal.m4: Regenerated by aclocal.
* configure: Regenerated by autoconf.
(init_dummy_target): New function, fills in dummy_target.
(initialize_targets): Use it.
* hpux-thread.c (hpux_thread_ops): Don't initialize statically.
(init_hpux_thread_ops): New function, fills in hpux_thread_ops.
(_initialize_hpux_thread): Use it.
* m3-nat.c (m3_ops): Don't initialize statically.
(init_m3_ops): New function, fills in m3_ops.
(_initialize_m3): Use it.
* infrun.c (set/show scheduler-locking) New command. Set a
mode bit that will control how GDB attempts to control thread
scheduling for step, continue, etc. (resume): make use of
the schedule-locking mode.
* target.h (struct target_ops): new field to_has_thread_control.
* sol-thread.c: initialize target_ops to_has_thread_control.
* procfs.c: ditto.
* target.c: ditto.
* m3-nat.c: ditto.
* remote.c: ditto.
* hpux-thread.c: ditto.
* infrun.c (set/show scheduler-locking) New command. Set a
mode bit that will control how GDB attempts to control thread
scheduling for step, continue, etc. (resume): make use of
the schedule-locking mode.
* target.h (struct target_ops): new field to_has_thread_control.
* sol-thread.c: initialize target_ops to_has_thread_control.
* procfs.c: ditto.
* target.c: ditto.
* m3-nat.c: ditto.
* remote.c: ditto.
* hpux-thread.c: ditto.
* gdb.texinfo: Changes made as part of a project to merge in
changes made by HP. Documentation makes extensive use of
@ifclear HPPA and @ifset HPPA. The HP manual omits doumentation
on remote debugging. There are differences in documentation
(HP vs. non-HP) on C++ support (aCC vs. gnu gcc++). Also,
the HP manual discusses catchpoints, hardware watchpoints, and
some HPUX specific limitations for shared library support.
There are also a number of @node changes.
* gdbint.texinfo (Formatting): Disambiguate a sentence.
(C Usage): Same.
I am stupid, so I had trouble reading these two sentences.
Now I can read them, so I am happy.
* gdb.texinfo (Shell Commands): fixed messages about shell usage.
HP was insisting on C shell. Now all UNIX platforms have the
same message. removed @ifset HPPA and @ifclear HPPA
Tue Jan 12 17:00:00 1999 Edith Epstein <eepstein@sophia.cygnus.com>
* inftarg.c (child_create_inferior): fixed HPUXHPPA specific
call to fork_inferior. The shell param is now NULL.
to conform to standards, fix spelling errors.
(ishex, stubhex, record_currthread, etc): Declare.
(ishex, stubhex): Declare char arg as int.
(pack_string): Comment out, never used but possibly useful.
(threadref_to_int, remote_get_threadinfo, etc): Make static.
as part of a project to merge in changes made by HP.
all-cfg.texi -- set HPPA for HP PA-RISC targets.
refcard.tex -- change documentation about catch; removed info catch.
HPPA-cfg.texi -- new file; HPPA configuration for manual.
called from wait_for_inferior. Instead, if a new thread-id is
detected, call add_thread. (MAGIC_NULL_PID): new macro, use
instead of the magic number "42000". (remote_find_new_threads):
if inferior_pid is unknown, get and use the current thread id.
(remote_start_remote): on connecting, attempt to get the current
thread id for inferior_pid. (remote_resume): If pid == -1,
then resume any-thread (not the current thread specifically).
* thread.c (info_threads_command): don't initialize current_pid
until after call to FIND_NEW_THREADS (which may change inferior_pid).
scope.exp, langs.exp, list.exp -- compile one file at a time, then link.
default.exp -- change expected messages for catch and info catch tests to
reflect hp merge changes.
to delete on clean.
(EXECUTABLES): update to reflect new additions.
* gdb.base/commands.exp: update message expected.
* gdb.base/default.exp: add copyright notice.
* gdb.base/funcargs.exp (timeout): if hpux, increase timeout.
* gdb.base/help.exp: update messages to reflect current text.
* gdb.base/recurse.exp: add hpppa*-*-bsd* to 'list' of enabled
targets for recurse tests.
* gdb.base/watchpoint.exp: if on hpux and not gcc compiled, then
skip this file.
* utils.c: <readline/readline.h> instead of "readline/readline.h".
* configure.in (TERM_LIB): Search for the appropriate term library
on the host system.
* configure: Regenerated.
* Makefile.in (TERMCAP): Set based on autoconf check.
* config/*/*.mh: Don't override TERMCAP setting.
than $(READLINE_SRC) so #include <readline/readline.h> will work.
* top.c: #include <readline/history.h> instead of "history.h".
* tracepoint.c: Likewise.
* mac-xdep.c: Likewise.
* blockframe.c (get_frame_saved_regs): If the saved_regs_addr ptr
is null, ensure that saved registers are copied from the local
variable that was used to obtain them.
* remote-rdp.c (rdp_init): Don't discard first character on reset.
(translate_open_mode): Define table.
(exec_swi): Handle SWI_Clock. SWI_Open now handles stdin/stdout.
SWI_Write returns number of bytes not written. SWI_Read does the
same. SWI_Seek should return success/failure flag. Fix SWI_Flen.
A patch from PR 15841 for the RDP (Demon) interface.
a printable representation.
(monitor_error): Call error after converting string into printable
format.
(monitor_printf{,_noecho}): If EXTRA_RDEBUG is defined, convert string
into printable form before printing.
(monitor_expect): Ditto.
(monitor_read_memory{,_single}): Call monitor_error, not error.
(monitor_read_memory): Return immediately if length is 0.
* ppcbug-rom.c (init_ppc_cmds): Fill in dump_registers field, which is
now required.
Re-do TARGET_PRINT_INSN_INFO, TARGET_PRINT_INSN, TARGET_ARCHITECTURE,
TARGET_ARCHITECTURE_AUTO, TARGET_BYTE_ORDER_SELECTABLE_P,
TARGET_BYTE_ORDER so that they can all be overriden.
Document.
Convert mn10300 and PPC targets.
Add two pointers (saved_regs, extra_info) to struct frame_info.
Introduce new macro FRAME_INIT_SAVED_REGS which replaces
FRAME_FIND_SAVED_REGS.
Document.
Use in mn10300 and rs6000 targets. Fix side effects on ALPHA, MIPS,
Z8K and SPARC targets.
* configure.in (with-sim-gpu2): Do not emit a -L argument without
an associated pathname. Link in the math library after the gpu2
library.
Assumes that libm is around (and doesn't take advantage of the
AC_CHECK_LIB(m) that is already in configure.in), but this is a
minor point and unlikely to cause problems.
* config/xm-aix4.h (SIGWINCH_HANDLER): Function `aix_resize_window'
must accept a signal number as parameter.
* config/rs6000/xm-rs6000.h (SIGWINCH_HANDLER): Ditto.
* utils.c (initialize_utils): Give a parameter to `SIGWINCH_HANDLER'.
* inferior.h (register_valid): Variable's type is `SIGNED char', not
`char'.
* findvar.c (register_valid): Ditto.
* defs.h (make_cleanup_func): Protect parameter list by `PARAMS'.
* gdbthread.h (unbind_target_thread_vector): Likewise.
Merged in m68k-linux patch from Andreas Schwab
1998-12-01 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* Makefile.in, configure.host, configure.tgt: Add support for
m68k-linux.
* config/m68k/linux.mh: New file.
* config/m68k/linux.mt: New file.
* config/m68k/nm-linux.h: New file.
* config/m68k/tm-linux.h: New file.
* config/m68k/xm-linux.h: New file.
* gdb/m68klinux-nat.c: New file.
* gdbserver/low-linux.c: Add support for m68k-linux.
* gdb/config/m68k/tm-m68k.h (NUM_FREGS): New macro.
* config/m68k/tm-m68k.h (NUM_FREGS): m68k-linux patch.
Added NUM_FREGS macro.
* config/m68k/xm-linux.h: m68k-linux patch. New file.
* config/m68k/tm-linux.h: m68k-linux patch. New file.
* config/m68k/nm-linux.h: m68k-linux patch. New file.
* config/m68k/linux.mt: m68k-linux patch. New file.
* config/m68k/linux.mh: m68k-linux patch. New file.
* gdbserver/low-linux.c: m68k-linux patch. Added an ifdef
that checks the value of __GLIBC to decide whether or
not to include sys/reg.h.
* m68klinux-nat.c: m68k-linux patch. New file. Note
both m68k-tdep.c and m68klinux-nat.c contain definitions
for supply_gregset and supply_fpregset. The definitions
in m68k-tdep.c are valid is USE_PROC_FS is defined. Otherwise,
the definitions in m68klinux-nat.c will be used. This is a
bit of a hack. The supply_* routines do not belong in
*_tdep.c files. But, there are several lynx ports that currently
depend on these definitions.
* configure.tgt: m68k-linux patch. Added m68*-*-linux*
gdb_target.
* configure.host: m68k-linux patch. Added m68*-*-linux*
gdb_host.
* Makefile.in: m68k-linux patch. Added compile line for
m68klinux-nat.o
* config/i386/xm-cygwin.h: Remove REQUEST_QUIT definition.
* config/powerpc/xm-cygwin.h: Ditto.
PR 17664.
With this define in place, you can't type "q" to get out of GDB's pager
under Cygwin.
the stack frame. Their offset from the previous stack frame is in
fdata.gpr_offset and fdata.fpr_offset, not fdata.offset.
(gdb.base/return.exp)
* config/rs6000/tm-rs6000.h: Doc fixes.
* monitor.c (monitor_read_memory): Zero out pattern buffers
before calling re_search.
(parse_register_dump): Ditto.
PR 18049. This bug had existed erratically since I upgraded to
the new gnu-regex.c this last summer. The problem is mostly in
parse_register_dump; the allocated structure has some random values
in it and there is a flag set in the register_pattern structure by the
gnu-regex library which indicates that the values in the re_registers
should be trusted.
If those arbitrary contents aren't zero, gnu-regex tries to run realloc
on them and we get a core dump on some hosts for some targets when the
moon is just right.