mswin/libwingdb.a and remote-wiggler.o.
* breakpoint.c (breakpoint_here_p): Clean up bp enabled test.
* (breakpoint_inserted_here_p): New func, just like
breakpoint_here_p, except it's honest. Honestly.
* breakpoint.h: Proto for above.
start-sanitize-gdbtk
* configure configure.in: Add host *windows* to list of hosts
that don't support GDBtk.
end-sanitize-gdbtk
* configure configure.in: Add mswin to configdirs if host is
i[3456]86-*-windows.
* core-aout.c (fetch_core_registers register_addr) gdbcore.h:
Change all vars that can contain addresses to type CORE_ADDR.
* findvar.c (supply_register): Allow val to be NULL. This means
that regno is unsupported.
* (read_pc read_pc_pid write_pc write_pc_pid): Make non-pid forms
just call pid forms with inferior_pid so that there's only once
place to hack PC's and such.
* infrun.c (proceed): Don't skip breakpoints if user changed PC.
* remote-wiggler.c: New file. Support for BDM interface from
Macraigor Systems.
* serial.c: Enhance serial logging capability. Add hex and octal
output modes (set remotelogbase {hex|octal|ascii}. Also log
breaks, timeouts, errors, and eofs.
* serial.h: Redefine SERIAL_SEND_BREAK to go through a wrapper
function so that we can log breaks. Don't export serial_logfile
or serial_logfp.
* top.c (execute_command): Don't test for serial_logfp here.
Just call serial_log_comand, and let serial.c sort it out.
* valops.c (value_of_variable): Don't attempt to establish frames
for static and global variables. This makes things work a bit
better if the stack or frame pointer is trashed.
* config/m68k/monitor.mt (TDEPFILES): Add remote-wiggler.o.
* config/m68k/tm-m68k.h: Define STACK_ALIGN. CPU32 can't hack
misaligned stacks during function calls.
Thu Jul 25 19:41:31 1996 Fred Fish <fnf@cygnus.com>
for details about these changes. I was going to include the complete
entry in the checkin message but it was apparently so large it caused
cvs to dump core.
and MMALLOC_CHECK macros, and add comment indicating how host dependent
makefile fragment should modify MMALLOC_CFLAGS to not use mmalloc, or
to use it but to not do heap corruption checking.
* gdbserver/Makefile.in: Ditto.
* utils.c (init_malloc): Replace warning() use with direct call of
fprintf_unfiltered, since current_target has not yet been set and thus
we cannot use warning(). If we try to use mmcheck and it fails,
suggest that this configuration needs NO_MMCHECK or MMCHECK_FORCE
defined. Other small mmalloc related cleanups.
* config/sparc/sun4os4.mh (MMALLOC_CFLAGS): Define MMCHECK_FORCE to 1.
* config/alpha/alpha-osf2.mh (MMALLOC_CFLAGS): Set to -DNO_MMCHECK.
* config/sparc/xm-sun4os4.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
* config/i386/xm-i386v4.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
* config/i386/xm-linux.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
* config/m68k/xm-hp300hpux.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
* config/m68k/xm-m68kv4.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT);
* config/m68k/xm-sun3os4.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
* config/pa/xm-hppah.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
* config/sparc/xm-sun4sol2.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
Remove obsolete defines.
* config/alpha/alpha-linux.mh (MMALLOC_DISABLE):
* config/alpha/alpha-osf1.mh (MMALLOC_DISABLE):
* config/rs6000/rs6000.mh (MMALLOC_DISABLE):
* config/rs6000/aix4.mh (MMALLOC_DISABLE):
* config/powerpc/aix4.mh (MMALLOC_DISABLE):
* config/powerpc/aix.mh (MMALLOC_DISABLE):
* config/ns32k/ns32km3.mh (MMALLOC_DISABLE):
* config/mips/mipsm3.mh (MMALLOC_DISABLE):
* config/mips/decstation.mh (MMALLOC_DISABLE):
* config/m88k/cxux.mh (MMALLOC_DISABLE):
* config/i386/i386mk.mh (MMALLOC_DISABLE):
* config/i386/i386m3.mh (MMALLOC_DISABLE):
* config/i386/i386gnu.mh (MMALLOC_DISABLE):
Use MMALLOC_CFLAGS instead.
* NEWS: Add Alpha Linux as a new native configuration.
* mdebugread.c (parse_symbol): When we find a malloc() symbol with
return type VOID, assume no debugging info is available for that
object file and patch the return value into VOID *. Otherwise,
operations requiring an implicit call to malloc() will fail.
* infrun.c (wait_for_inferior): The criterion to detect entering a
sigtramp handler is now: (a) the current pc is inside a sigtramp
handler, (b) the previous pc is not in a sigtramp handler, and (c)
the current stack pointer is "inner" than the old one. Condition
(c) is new to avoid mistaking a return from a signal handler into
sigtramp as a new sigtramp invocation.
* dcache.c (struct dcache_block): Declare addr as CORE_ADDR. An
int may not be big enough to hold an address.
(dcache_hit): Ditto.
(dcache_peek_byte): Fix indentation.
* configure.in (alpha-*-linux*): Add target.
* configure: Rebuild
* config/alpha/tm-alpha.h (PROC_DESC_IS_DYN_SIGTRAMP): New macro.
(SET_PROC_DESC_IS_DYN_SIGTRAMP): Ditto.
(DYNAMIC_SIGTRAMP_OFFSET): Ditto.
(SIGCONTEXT_ADDR): Ditto.
(FRAME_PAST_SIGTRAMP_FRAME): Ditto.
* config/alpha/alpha-linux.mh: New file.
* config/alpha/alpha-linux.mt: Ditto.
* config/alpha/nm-linux.h: Ditto.
* config/alpha/tm-alphalinux.h: Ditto.
* config/alpha/xm-alphalinux.h: Ditto.
* config/alpha/xm-alphaosf.h: Renamed from xm-alpha.h.
* config/alpha/alpha-osf1.mh (XM_FILE): Change from xm-alpha.h to
xm-alphaosf.h.
* config/alpha/alpha-osf2.mh: Ditto.
* blockframe.c (find_pc_partial_function): Pass PC to
SIGTRAMP_START and SIGTRAMP_END macros for the benefit of systems
that detect sigtramp code via designated code sequences (as is the
case for Linux/Alpha, for example).
* config/i386/tm-i386bsd.h: Change SIGTRAMP_START and SIGTRAMP_END
to ignore new PC argument.
* config/m68k/tm-hp300bsd.h: Ditto.
* config/vax/tm-vax.h: Ditto.
* alpha-tdep.c (alpha_linux_sigtramp_offset): New function.
(alpha_osf_skip_sigtramp_frame): Ditto.
(push_sigtramp_desc): Ditto.
(alpha_find_saved_regs): Use SIGCONTEXT_ADDR macro to extract
sigcontext address from frame.
(alpha_saved_pc_after_call): When in sigtramp, use
alpha_frame_saved_pc() instead of read-register().
(after_prologue): When inside a dynamically generated sigtramp
function, there is no prologue, so return address of first
instruction.
(alpha_in_prologue): Fix typo in comment.
(find_proc_desc): Use macro DYNAMIC_SIGTRAMP_OFFSET to determine
whether we're inside a dynamicaly generated sigtramp function. If
so, create and push and appropriate procedure descriptor.
(alpha_frame_chain): Use macro FRAME_PAST_SIGTRAMP_FRAME to obtain
the frame past a sigtramp frame (if the current frame is indeed a
sigtramp function).
(init_extra_frame_info): Don't read next frame register off of
stack-pointer when inside a dynamiccaly generated sigtramp.
(alpha_pop_frame): Also unlink and destroy procedure descriptors
created for dynamically generated sigtramp functions.
* alpha-nat.c: When compiling under Linux, include <asm/reg.h> and
<alpha/ptrace.h> instead of <machine/reg.h>
* config.in: Regenerate with autoheader.
* configure: Regenerate with autoconf.
* inflow.c (_initialize_inflow): Only try to use _SC_JOB_CONTROL
if it is actually defined.
(gdb_setpgid): Use HAVE_SETPGID.
* ch-exp.c: Change include of <string.h> to "gdb_string.h".
* c-exp.y: Ditto.
* f-exp.y: Ditto.
* m2-exp.y: Ditto.
* c-exp.y: Include <ctype.h>.
* serial.c: Ditto.
* config/m68k/nm-news.h: Add typedef for pid_t which is
apparently missing from <sys/types.h>. Enclose entire
file in NM_NEWS_H ifndef and define when included.
* config/mips/nm-news-mips.h: Ditto.
* config/m68k/tm-m68k.h (REGISTER_CONVERT_TO_VIRTUAL,
REGISTER_CONVERT_TO_RAW): Change name of temporary variable.
here from config/i386/xm-i386mach.h, fix name.
* config/i386/nm-sun386.h: Ditto, from config/i386/xm-sun386.h.
* config/i386/nm-ptx4.h (CHILD_PREPARE_TO_STORE): Move to
here from config/i386/xm-ptx4.h.
* config/i386/nm-ptx4.h: Ditto, from config/i386/xm-ptx.h.
* config/i386/nm-symmetry.h: Ditto, from config/i386/xm-symmetry.h.
* config/m68k/nm-sun3.h: Ditto, from config/m68k/xm-sun3.h.
more housekeeping
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).
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.
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.
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.
unnecessary remoteloadprotocol and remoteloadtype support.
* (expect expect_prompt): Change names to monitor_expect and
monitor_expect_prompt. Make them global.
* (printf_monitor): Change name to monitor_printf. Make global.
* (monitor_read_memory): Flush command echo to avoid parsing
ambiguity with CPU32Bug monitor.
* (monitor_load): Remove remoteloadprotocol and remoteloadtype
support. Call target_ops->load_routine, default to
monitor_load_srec.
* (monitor_load_srec): Remove everything but S-record support.
* monitor.h (monitor_ops): Add load_routine to provide monitor
specific download capability.
* remote-est.c: Clean up copyrights and comments.
* w89k-rom.c: Use new xmodem support.
* xmodem.c xmodem.h: New files to support xmodem downloads.
* rom68k-rom.c remote-est.c: Fix copyrights, add load_routine
entry to monitor_ops.
* cpu32bug-rom.c: New file to support Moto BCC debuggers.
* config/m68k/est.mt (TDEPFILES): Add cpu32bug.o.
* config/pa/hppapro.mt (TDEPFILES): Add xmodem.o.
* findvar.c: Move default def of CANNOT_STORE_REGISTER closer to
the beginning of the code.
* (write_register_gen): New routine. Analogous to
read_register_gen.
* (write_register_bytes): Another rewrite! Make it smarter about
not updating regs with the same value.
* monitor.c (printf_monitor readchar): Use stderr instead of
stdout to output debug info. Also cleanup readchar a little.
* (expect): Make sure that excessive responses are null
terminated.
* (monitor_open): Check for magic number in monitor_ops struct.
Allow multiple commands as init strings. Also, clear all
breakpoints.
* (monitor_resume monitor_wait): Send a command to dump all the
regs for those targets which don't do so when waking up after a
continue command.
* (monitor_wait): Handle excessive response output better.
* (monitor_write_memory): Use block fill, word, and long word
commands (if they exist) to write memory more efficiently.
* General cleanups to use flag bits instead of individual flag
words in monitor_ops struct.
* (monitor_command): Return output from command.
* (monitor_load_srec): Allocate buffer only once. Use alloca.
Wait for load response string instead of using a timeout to start
sending S-records. Fix bug where value of srec_frame shrinks. If
hashmark is set, print `-' for retransmissions. General cleanups.
* (monitor_make_srec): Get rid of S-record default type kludge.
* monitor.h: Use seperate struct for memory and register
read/write commands. Memory commands can come in byte, word,
long, and longlong forms.
* (monitor_ops): Change lots of fields. Generalize some stuff.
Put all flags into flags word. Allow init to be a list of commands.
Add command for clearing all breakpoints, block fill, dumping all
registers.
* remote-est.c: Rewrite to use new monitor conventions.
* config/m68k/est.mt (TDEPFILES): Add monitor.o.
* config/m68k/tm-est.h: Set NUM_REGS to 18.
* testsuite/gdb.base/break.exp: Lots of cleanups. Use gdb_test
more thoroughly.
these routines much smarter about updating registers from the
target, only doing so when absolutely necessary. This really
speeds up register modification on some remote targets.
* monitor.c: More cleanups. Get rid of monitor_load_ascii_srec.
BFD makes this unnecessary. Lots of debugging speedups.
* (expect): NULL terminate return string.
* (monitor_open monitor_supply_register parse_register_dump
monitor_wait monitor_fetch_register): Switch to using GNU regexp
library to parse multi-register displays.
* (monitor_read_memory): Read multiple bytes (up to 16) at once.
* (monitor_create_inferior): Call clear_proceed_status to make run
command notice first breakpoint.
* (monitor_load): Clean up. Reset inferior_pid, set pc to start
address and reset symbol table stuff to make loads put things into
a fresh state.
* (monitor_load_srec): Lower sleep time to 1 second.
* monitor.h (struct monitor_ops): Add register_pattern and
supply_register to monitor_ops.
* rom68k-rom.c: Add new support for handling register dumps.
* config/m68k/tm-m68k.h: Define D0_REGNUM and A0_REGNUM for register
dump handling.
symbol special handling when INHIBIT_SUNSOLIB_TRANSFER_TABLE_HACK
is defined.
* infrun.c (IN_SOLIB_CALL_TRAMPOLINE): Renamed from
IN_SOLIB_TRAMPOLINE. All callers changed.
(IN_SOLIB_RETURN_TRAMPOLINE): Provide default definition.
(wait_for_inferior): Handle single stepping through trampolines on
return paths from shared libraries.
* config/pa/tm-hppa.h (IN_SOLIB_CALL_TRAMPOLINE): Use
in_solib_call_trampoline.
(IN_SOLIB_RETURN_TRAMPOLINE): Use in_solib_return_trampoline.
(INHIBIT_SUNSOLIB_TRANSFER_TABLE_HACK): Define.
* hppa-tdep.c (in_solib_call_trampoline): New function.
(in_solib_return_trampoline): New function.
of config/nm-trash.h.
* config/nm-trash.h: Remove.
* config/nm-empty.h: New file.
* config/i386/nm-m3.h: New file, includes config/nm-m3.h.
* config/mips/nm-m3.h: New file, includes config/nm-m3.h.
* config/m68k/nm-sysv4.h: New file, includes config/nm-sysv4.h.
* config/mips/nm-sysv4.h: New file, includes config/nm-sysv4.h.
* config/sparc/nm-sysv4.h: New file, includes config/nm-sysv4.h.
(SiowGDB): New target, GDB using SIOW library.
(init-new.c): New target, attempt to generate init.c from sources.
(main.c.o, top.c.o): Put each in its own segment.
* main.c (main) [MPW]: Always call mac_init.
* utils.c (query) [MPW]: Always return "yes" if in MacGDB, output
an extra newline otherwise.
* mac-xdep.c: More comments in various places, remove junk.
(mac_init): Add tests for MPW and SIOW.
(use_wne, has_color_qd): Renamed.
(use_color_qd): New variable.
(grow_window): Only do console resizing to console window,
call resize_console_window.
(zoom_window): Call resize_console_window.
(resize_console_window, scroll_text): New functions.
(adjust_console_sizes): Always align viewrect to even multiples of
text lines.
(adjust_console_text): Always scroll by whole lines.
(hacked_vfprintf, hacked_puts, hacked_fputc, hacked_putc): Force a
recalculation of scroll positions if a newline was output.
(hacked_fflush): Similarly, for flushing.
(hacked_fgetc): New function, aborts if called in MacGDB.
* ser-mac.c (mac_readchar): Rename starttime to start_time,
remove debugging printf.
(mac_write): Sleep on first 4 writes.
(sec_sleep): New function, works like standard sleep.
* macgdb.r: Adjust positioning and contents of About box.
Set minimum size to 2000K, preferred size to 5000K.
* config/m68k/xm-mpw.h (fgetc): Define as a macro.
BROKEN_LARGE_ALLOCA. Do the cleanup before returning, rather than
leaving it on the chain. Reindent much of this function.
* config/sparc/{xm-sun4sol2.h,xm-sun4os4.h},
config/i386/{xm-sun386.h,xm-i386m3.h,xm-i386mach.h},
config/m68k/{sun3os4.h,xm-news.h,xm-hp300hpux.h},
config/ns32k/xm-ns32km3.h: Remove all references to
BROKEN_LARGE_ALLOCA; with the above change it is no longer needed.
* main.c, fork-child.c, many config files: Remove all
SET_STACK_LIMIT_HUGE code; with the above changes it should no
longer be needed.
* symtab.c (lookup_partial_symbol): Use if and abort, not assert.
This avoids __eprintf troubles.
* main.c (main): Surround in #ifndef MAIN_OVERRIDE. Move
initialization code which needs to be called even if we bypass the
command line stuff into gdb_init.
* utils.c (fputs_unfiltered): Surround in #ifndef
FPUTS_UNFILTERED_OVERRIDE.
* Makefile.in (libgdb.a): New target.
* utils.c: Rearrange I/O stuff a bit so that all output goes
through fputs_unfiltered. Use vasprintf; removes arbitrary limit
which made %s not work with arbitrarily large strings.
* printcmd.c (printf_command): Use printf_filtered, not
printf_unfiltered and printf, now that arbitrary limit is gone.