%o0-%o5 as 64-bit values; compensate for stack bias.
(USE_STRUCT_CONVENTION): We only pass pointers to structs
if they're larger than 32 bytes.
(REG_STRUCT_HAS_ADDR): Ditto.
* sparc-tdep.c (sparc_init_extra_frame_info): Use read_sp()
instead of read_register. If the target is a sparc64 and the frame
pointer is odd, compensate for the stack bias.
(get_saved_register): Use read_sp().
(DUMMY_STACK_REG_BUF_SIZE): Use FP_REGISTER_BYTES.
(sparc_push_dummy_frame): Use read_sp()/write_sp(). On sparc64,
save the PC, NPC, CCR, FSR, FPRS, Y and ASI registers.
(sparc_frame_find_saved_regs): Use read_sp(). Read the PC, NPC,
CCR, FSR, FPRS, Y and ASI registers from the frame, if it's a
dummy frame.
(sparc_pop_frame): Use write_sp(). If the target is a sparc64 and
the FP is odd, compensate for stack bias.
(sparc_store_return_value): Right-justify the return value before
writing it to %o0.
(sparc_fix_call_dummy): Don't NOP out part of the call dummy on
sparc64.
(sparc64_read_sp, sparc64_read_fp, sparc64_write_sp,
sparc64_write_fp, sp64_push_arguments,
sparc64_extract_return_value): New functions to support the
sparc64 ABI.
* dwarfread.c (handle_producer): Set processing_gcc_compilation to
the right version number.
* dwarf2read.c (read_file_scope): Assume we're processing
GCC2 output.
make it work on the simulator.
(FIX_CALL_DUMMY): Convert to function call instead of inline code.
(sparc_fix_call_dummy): Declare.
* sparc-tdep.c (sparc_fix_call_dummy): New function, taken from
old FIX_CALL_DUMMY macro, with additional fixes for simulator.
(sparc_push_dummy_frame): Set registers differently on simulator
to prevent corrupted register window save areas.
* procfs.c: Added replacement macros for LWP stuff. Fixed support
for UnixWare / SVR4.2MP targets and any targets which use
multi-file /proc entries. Fixed support for hardware watchpoints.
* solib.c: SCO needs some of the same code as SunOS. Change
preprocessor conditionals.
* config/i386/i386sco5.mt: New file.
* config/i386/tm-i386sco5.h: New file.
* config/i386/i386sco5.mh (NATDEPFILES): add i386v-nat.o.
* config/i386/nm-i386v42mp.h
(TARGET_HAS_HARDWARE_WATCHPOINTS): define.
Add other macros for hardware assisted watchpoints.
* config/i386/nm-i386sco5.h: Correct attributions.
(TARGET_HAS_HARDWARE_WATCHPOINTS): define.
* config/i386/nm-linux.h (target_remote_watchpoint): Pass
'type' through to i386_insert_watchpoint.
Mon Apr 20 14:12:30 1998 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
* infrun.c (wait_for_inferior): Don't add signalled processes
as new threads.
* procfs.c (wait_fd): Note if LWP has exited.
(procfs_wait): use GETPID to get process ID.
NOTE: I didn't commit Kean's changes to configure.host/configure.tgt
yet because they are kind of bogus and I'm punting back to him to let
him figure out what he's trying to do. So configuring for UnixWare
may not work just yet.
(sparc_extract_return_value): New function, required to handle
machines without floating point.
(sparc_store_return_value): Ditto.
* config/sparc/tm-sparc.h (EXTRACT_RETURN_VALUE): Call
sparc_extract_return_value instead of using inline code.
(sparc_extract_return_value): Declare.
(STORE_RETURN_VALUE): Call sparc_store_return_value instead
of using inline code.
(sparc_store_return_value): Declare.
work correctly on little-endian hosts.
(sparc_push_arguments): New function.
(gdb_print_insn_sparc): New function.
(_initialize_sparc_tdep): Make gdb_print_insn_sparc the default
disassembler, so that SPARClite-specific instructions will
be recognized.
* sparcl-tdep.c (readchar): Print debugging information.
(debug_serial_write): New function, a replacement for SERIAL_WRITE
that prints debugging information.
* config/sparc/tm-sparc.h (PUSH_ARGUMENTS): Define.
(sparc_push_arguments): Declare.
* configure.tgt: Switch over to use tm-4320.h. Since I switched to
MIPS EABI the fixes are no longer backward compatible with 4300.
* tm-vr4320.h: Added
* vr4320.mt: Added
Update support for x86 Solaris 2.
* config/i386/tm-i386sol2.h, nm-i386sol2.h: New configuration
files for x86 Solaris 2.
* config/i386/i386sol2.mt, i386sol2.mh: Use them.
* config/sparc/tm-sun4sol2.h (PROCFS_GET_CARRY): New macro, extract
carry flag from a given regset.
(IS_STATIC_TRANSFORM_NAME): New macro, check if a symbol name
is a SunPro transformed name.
* i386-tdep.c (sunpro_static_transform_name): New function to
extract the source name from a SunPro transformed name.
* inferior.h (procfs_first_available, procfs_get_pid_fd):
Add prototypes.
* infrun.c (wait_for_inferior): Handle breakpoint hit in
signal handler without intervening stop in sigtramp.
* procfs.c (procfs_lwp_creation_handler): Use PROCFS_GET_CARRY
instead of direct access to the status register.
(procfs_get_pid_fd): New function, returns procfs fd for a given pid.
* sol-thread.c (ps_lgetLDT): New function, returns LDT for a given
lwpid.
(sol_find_new_threads): Handle failed libthread_db initialization
gracefully.
* stabsread.c (define_symbol): Use IS_STATIC_TRANSFORM_NAME
to check for a SunPro transformed symbol name.
* ns32k-tdep.c (flip_bytes, ns32k_localcount,
ns32k_get_enter_addr, sign_extend): Restore functions mysteriously
deleted.
* ns32knbsd-nat.c: New (?) file to support fetching and storing
registers on NetBSD hosts.
* nbsd.mh (NATDEPFILES): put ns32knbsd-nat.o instead of
ns32k-nat.o
* ns32km3-nat.c (reg_offset): Get order of floating point
registers correct. Add extra 32382 register offsets.
(REG_ADDRESS): define to point at correct part of thread
state. Use calls to "warning" instead of "message".
* tm-nbsd.h, tm-ns32km3.h (REGISTER_NAMES, NUM_REGS,
REGISTER_BYTES, REGISTER_BYTE): redefine allowing for 32382
fpu registers.
* config/d10v/d10v.mt config/d30v/d30v.mt config/m32r/m32r.mt
config/mn10200/mn10200.mt config/mn10300/mn10300.mt : Remove -lm
from SIM. This prevents dependency checking of -lm (under NT
native builds). (It is automatically added by configure if it
exists.)
* doc/configure mswin/configure nlm/configure
testsuite/gdb.base/configure testsuite/gdb.c++/configure
testsuite/gdb.chill/configure testsuite/gdb.disasm/configure
testsuite/gdb.stabs/configure testsuite/gdb.threads/configure:
Regenerate with autoconf 2.12.1 to fix shell issues for NT native
builds.
* gdbserver/Makefile.in: add dependency on XM_CLIBS.
* gdbserver/low-sim.c (registers) force into alignment.
(create_inferior): Fix typo on new_argv; add abfd arg to
sim_open, sim_create_inferior. Add reg_size arg to
sim_fetch_register, sim_store_register. Make simulator
take a single-step to get into a known running state.
* gdbserver/gdbreplay.c: include fcntl.h for def'n of F_SETFL.
* gdbserver/server.c: Add remote_debug variable to control
debug output.
* gdbserver/server.h: Add prototypes for enable/disable_async_io.
* gdbserver/remote-utils.c: add verbose debugging output controlled
by "remote_debug" variable. Add call to "disable_async_io()"
to avoid being killed by async SIGIO signals.
* config/m32r/m32r.mt: define GDBSERVER_(LIBS and DEPFILES),
so that gdbserver can be built with the m32r simulator.
* config/m68k/xm-sun3os4.h: Remove malloc declarations, they
are handled via autoconf now.
* remote.c (remote_ops, extended_remote_ops): Replace static
forward declaration by moving the static definition to the top of
the file, for old K&R compilers.
* tracepoint.c (collect_symbol, trace_start_command):
Replace ANSI string concatenation with K&R compatible simple string.
Configuration triple mips64vr4111-*-elf
64 bit architecture
16 bit sub core
32 bit ints and floats
No floating point unit
MIPS EABI interface
Dwarf2 debugging format
* m68k/tm-delta68.h (EXTRACT_RETURN_VALUE): Type argument for
`REGISTER_CONVERT_TO_VIRTUAL is `TYPE', not
`REGISTER_VIRTUAL_TYPE (FP0_REGNUM)';
(STORE_RETURN_VALUE): Ditto, and offset for `write_register_bytes'
is `REGISTER_BYTE (FP0_REGNUM)', not `FP0_REGNUM'.
(FRAME_NUM_ARGS): New macro.
* m68k/tm-news.h (EXTRACT_RETURN_VALUE, STORE_RETURN_VALUE): Ditto.
* delta68-nat.c (clear_insn_cache): New function, forgotten in previous
patch.
* m68k/tm-delta68.h (CPLUS_MARKER): Macro deleted.
(EXTRACT_STRUCT_VALUE_ADDRESS): Macro defined.
(EXTRACT_RETURN_VALUE, STORE_RETURN_VALUE): Macros modified
because floating-point values return via %fp0.
(CLEAR_INSN_CACHE): New macro.
* m68k/tm-m68k.h (REGISTER_CONVERT_TO_VIRTUAL): Macro fixed
to use DOUBLEST.
(REGISTER_CONVERT_TO_RAW): Ditto.
* infptrace.c (child_xfer_memory): If CLEAR_INSN_CACHE is defined,
call it after having written in child process's memory.
* inflow.c (PROCESS_GROUP_TYPE): Macro defined if HAVE_TERMIO.
(gdb_has_a_terminal, terminal_ours_1): Functions fixed for HAVE_TERMIO.
D10V_CONVERT_DADDR_TO_RAW): Define.
* d10v-tdep.c (d10v_push_arguments): Re-write. Pass arguments in
registers, regardless of their size, when they fit.
o Fix code assuming that host/target were both bigendian.
o Replace d10v push dummy frame code with version using new common
generic generic version.
o Find/fix more cases where a value needs to be translated to/from
instruction (IMAP) or data (DMAP) spaces.
(TARGET_READ_FP): Define to d10v_read_fp rather than d10v_read_sp.
(TARGET_WRITE_FP): Define to d10v_write_fp rather than d10v_write_sp.
(d10v_write_fp, d10v_read_fp): Add prototypes.
* symtab.c (decode_line_1): Remove assignment of sals[0].pc field.
* symfile.c (simple_overlay_update, simple_overlay_update_1):
Ignore the size of overlay sections. This check is redundant anyway.
* printcmd.c (print_frame_args): Ditto.
* valops.c (value_fetch_lazy): Ditto.
* values.c (unpack_long): Ditto.
* d10v-tdep.c (d10v_frame_chain, d10v_frame_find_saved_regs,
d10v_init_extra_frame_info): Fix some minor bugs so the finish command
works properly.
(show_regs): Change num1 and num2 types from "long long" to "LONGEST".
(d10v_read_fp, d10v_write_fp): New functions.
(d10v_push_arguments): Remove unneeded assigns to "val" and "contents".
(d10v_push_arguments): Fix for pointers and structs.
(d10v_extract_return_value): Fix for pointers and chars.
recognition, no source files for these (note that the i386 Mach
is pre-Mach 3).
(mips*-*-mach3*, ns32k-*-mach3*): Fix file names.
* config/mips/mipsel64.mt: Remove, never referenced.
* monitor.c (monitor_debug): Move to utils.c, rename to puts_debug.
(monitor_write_memory, monitor_read_memory, monitor_insert_breakpoint,
monitor_remove_breakpoint): Remove useless address bits if current
monitor has MO_ADDR_BITS_REMOVE flag.
* monitor.h (MO_ADDR_BITS_REMOVE): Define.
* utils.c (puts_debug): Formerly monitor_debug from monitor.c;
move here and make public. Add better support for carriage returns.
* defs.h (puts_debug): Declare.
* dsrec.c (load_srec): Use puts_debug to print remotedebug information.
Output header record correctly.
(make_srec): Output a header record instead of a termination record
if sect is non-NULL (value is ignored), but abfd is NULL.
* config/mips/tm-tx39.h (DEFAULT_MIPS_TYPE): Remove definition.
(REGISTER_NAMES): Define to add R3900-specific registers.
* config/mips/tm-tx39l.h: Ditto.
* config/mips/tx39.mt (TDEPFILES): Add dve3900-rom.o and support files.
* config/mips/tx39l.mt: Ditto.
arguments are passed in args registers until we run out; finding saved regs
now has two offsets not just one doing double duty.
TARGET_READ_SP / TARGET_WRITE_SP are (temporarily?) commented out.
In dwarf2read.c, if the ABI is 32 bit and 64 bit addresses are encountered
discard the most significant 32 bits.
Use CORE_ADDR for address variables instead of long.
Add more explicit tx49 configur target.
Check/use sigaction/SA_RESTART in remote-sim.c
than sprinkled throughout the code. changes to several functions; backtraces
now work and calling functions in the inferior partially works. Registers
do not yet track the frame.
To configure.in: make PRINTF_HAS_LONG_LONG check more pedantic; check
that SCANF_HAS_LONG_DOUBLE instead of assuming PRINTF_HAS_LONG_DOUBLE
implies it; document.
* config/i386/cygwin32.mh: because cygwin.dll calls malloc/realloc
to allocate memory for environ space, gdb cannot use memory
checks -- set -DNO_MMCHECK
addresses to be odd.
(MIPS_FPU_SINGLE_REGSIZE, MIPS_FPU_DOUBLE_REGSIZE): Define.
* mips-tdep.c (mips_extract_return_value): Doubles aren't
returned in FP0 if FP registers are single-precision only.
start-sanitize-r5900
* config/mips/tm-r5900.h (MIPS_LAST_FP_ARG_REGNUM): Redefine
to disable use of FP registers for function arguments.
end-sanitize-r5900
member for storing offset of MIPS16 frame pointer from SP.
* mips-tdep.c: Use RA_REGNUM instead of hardcoded 31 throughout.
(PROC_FRAME_ADJUST): Define.
(mips16_heuristic_proc_desc): Store frame pointer adjustment value.
(get_frame_pointer): Use frame pointer adjustment value when
calculating frame address.
* remote-sim.c (gdbsim_fetch_register): Don't fetch registers
that have a null or empty name.
start-sanitize-tx19
* config/mips/tm-tx19.h (MIPS_DEFAULT_FPU_TYPE): Define.
(REGISTER_NAMES): Redefine to eliminate FP registers.
* config/mips/tm-tx19l.h: Ditto.
end-sanitize-tx19
source files.
* breakpoint.c (resolve_sal_pc): Prevent crash when pc isn't
associated with a function.
* buildsym.c (record_line start_symtab end_symtab): Don't delete
symtabs which only have line numbers (but no other debug symbols).
* dbxread.c (read_dbx_symtab end_psymtab): Ditto.
* remote-sim.c: New functions gdbsim_insert/remove_breakpoint. Use
intrinsic simulator breakpoints if available, otherwise do it the
hard way.
* configure.tgt: Add d30v.
* d30v-tdep.c: New file.
* config/d30v/d30v.mt, config/d30v/tm-d30v.h: New files.
(end_psymtab): Use MSYMBOL_SIZE to extract size from minimal symbol.
* elfread.c (elf_symtab_read): If ELF symbol is "special",
such as a MIPS16 function, mark minimal symbol as special too.
* mips-tdep.c (pc_is_mips16): New function to check whether
a function is MIPS16 by looking at the minimal symbol. Use
pc_is_mips16 throughout instead of IS_MIPS16_ADDR macro.
* config/mips/tm-mips.h (SYMBOL_IS_SPECIAL, MAKE_MSYMBOL_SPECIAL,
MSYMBOL_IS_SPECIAL, MSYMBOL_SIZE): New functions for setting/testing
"special" MIPS16 bit in ELF and minimal symbols.
* mdebugread.c (parse_partial_symbols): Don't construct a partial
symbol table for a file that already has one.
start-sanitize-tx19
* configure.tgt: Support TX19.
* config/mips/tm-tx19.h, config/mips/tm-tx19l.h, config/mips/tx19.mt,
config/mips/tx19l.mt: New files for TX19.
end-sanitize-tx19
* config/powerpc/ppc-eabi.mt:
* config/powerpc/ppc-sim.mt:
* config/powerpc/ppcle-eabi.mt:
* config/powerpc/ppcle-sim.mt: ser-ocd.c needs to be before
other ocd-related files in TDEPFILES
* ocd.c (ocd_insert_breakpoint, ocd_remove_breakpoint): macro
BDM_BREAKPOINT already has braces around it, remove erroneous ones.
* ser-ocd.c (ocd_write): conditionalize on _WIN32 instead of
__CYGWIN32__
* config/powerpc/tm-ppc-eabi.h: remove BDM_NUM_REGS, BDM_REGMAP
* ppc-bdm.c: move BDM_NUM_REGS, BDM_REGMAP here from tm.h file,
fill in doc fields of bdm_ppc_ops.
(bdm_ppc_fetch_registers): don't ask for invalid registers such
as the MQ or floating point regs not present on ppc 8xx boards
(bdm_ppc_store_registers): don't write those same invalid registers
* config/i386/cygwin32.mh: stop including ocd.o ser-ocd.o
* config/powerpc/ppc-eabi.mt:
* config/powerpc/ppcle-eabi.mt:
* config/powerpc/ppc-sim.mt:
* config/powerpc/ppcle-sim.mt: include ser-ocd.o
* config/tic80/tic80.mt:
(GDBSERVER-DEPFILES, GDBSERVER_LIBS): Define for gdbserver.
(SIM): Remove -lm to prevent make errors.
* configure.tgt: add gdbserver to configdirs for tic80.
end-sanitize-tic80
* gdbserver/utils.c (error): Change prototype to match defs.h.
* gdbserver/low-sim.c: Change simulator calls to use new interface.
* remote.c (remote_write_bytes): Include '$' at start of packet
and checksum at end of packet in overhead calculation.
(dll_do_command): New static variable if _WIN32.
(ocd_open): Set dll_do_command if _WIN32.
(ocd_write): Use dll_do_command rather than do_command.
* config/i386/cygwin32.mh (XDEPFILES): Remove libwigglers.a.
(BDM_DLLNAME, BDM_LIBNAME, BDM_DEFFILE): Don't define.
($(BDM_LIBNAME)): Remove target.
* wigglers.def: Remove.
* Makefile.in: add DLLTOOL = @DLLTOOL@, pass on DLLTOOL to
sub makes, change clean rule to also remove *.a to remove
libwigglers.a, in dependencies: add ppc-bdm.o ocd.o ser-ocd.o and
remove remote-wiggler.o
* configure.in: add DLLTOOL support
* configure: regenerate
* wigglers.def: new file for imports for wigglers.dll
* ser-ocd.c: new file which is layer between ocd.c and either the
wigglers.dll or the target box, only stub so far
* config/powerpc/ppc-eabi.mt: add ppc-bdm.o to TDEPFILES
* config/powerpc/ppc-sim.mt: add ppc-bdm.o to TDEPFILES
* config/i386/cygwin32.mh: add ocd.o ser-ocd.o libwigglers.a
to XDEPFILES, add rules to build libwigglers.a
checking in changes of Stu Grossman <grossman@cygnus.com>:
* remote-wiggler.c: delete
* ocd.c: new, was remote-wiggler.c
always include sys/types.h, include ocd.h, move WIGGLER
commands and many wiggler prototypes to ocd.h, make wiggler_desc
static, stop making local wiggler functions static,
define write_mem_command for wiggler_write_bytes
(wiggler_start_remote): stop hardcoding the target type,
instead set and use a target_type variable.
(wiggler_open): add new target_type and ops args
(wiggler_wait): now no longer takes pid and target_status as args,
stop trying to set target_status struct, remove BGND insn
checks
(read_bdm_registers): renamed to wiggler_read_bdm_registers
(wiggler_read_bdm_registers): numregs arg changed to reglen arg,
remove pktlen check, set reglen instead of numregs
(dump_all_bdm_regs): delete
(wiggler_fetch_registers): delete
(wiggler_prepare_to_store): now just an empty function
(wiggler_store_registers): delete
(wiggler_read_bdm_register): new
(wiggler_write_bdm_registers): new
(wiggler_write_bdm_register): new
(wiggler_write_bytes): use write_mem_command variable instead of
WIGGLER_WRITE_MEM
(get_packet): renamed to wiggler_get_packet, change refs throughout
(put_packet): renamed to wiggler_put_packet, change refs throughout
(wiggler_get_packet): add break to default case of switch,
change length of WIGGLER_GET_VERSION len to 10 from 4 to match
specs
(wiggler_mourn): unpush_target with current_ops, not &wiggler_ops
(flash_xfer_memory): delete
(noop_store_registers): new placeholder replacement for
target_store_registers() which prevents generic_load from trying to
set up the PC.
(bdm_update_flash_command): add store_registers_tmp variable,
make handling of wiggler_ops more generic -- define wiggler_ops
in a target-specific file instead (such as ppc-bdm.c in the case
of the ppc), use current_target to deal with registers again
making this file less target-specific.
(bdm_read_register_command): new
(_initialize_remote_wiggler): stop doing add_target (&wiggler_ops),
comment out add_cmd ("read-register", ...)
* ocd.h: new, contains common wiggler prototypes, command definitions
* ppc-bdm.c: file for ppc-specific OCD code, including target_ops
structure for ppc bdm
(bdm_ppc_open): new
(bdm_ppc_wait): new
(bdm_ppc_fetch_registers): new
(bdm_ppc_store_registers_: new
(_initialize_bdm_ppc): new
* config/powerpc/tm-ppc-eabi.h: add necessary CPU32 BDM defines
whether CRLF_SOURCE_FILES is defined.
(open_source_file): Use OPEN_MODE with open and openp.
(print_source_lines): Use FDOPEN_MODE with fdopen. If
CRLF_SOURCE_FILES is defined, ignore \r characters.
(forward_search_command): Use FDOPEN_MODE with fdopen.
(reverse_search_command): Likewise.
* config/i386/xm-cygwin32.h (CRLF_SOURCE_FILES): Define.
(LSEEK_NOT_LINEAR): Don't define.
stepping over an instruction that triggered a watchpoint.
* remote-mips.c: Numerous changes to support hardware breakpoints
and watchpoints on LSI MiniRISC and TinyRISC boards.
* mips-tdep.c: Move MIPS16-related macros to config/mips/tm-mips.h.
(mips_breakpoint_from_pc): Account for different breakpoint
instructions used by PMON and IDT monitor.
* config/mips/tm-embed.h: Enable hardware breakpoints on embedded
MIPS targets.
* config/mips/tm-mips.h: Define breakpoint instructions for
PMON and IDT monitor. Move MIPS16-related macros here from
mips-tdep.c.
ChangeLog sh-tdep.c config/sh/tm-sh.h
* config/sh/tm-sh.h: add define for FPSCR_REGNUM
* sh-tdep.c (sh_show_regs): print out all registers for
the current processor
that directory.
* defs.h utils.c (error warning): Make message be const.
* main.c (fputs_unfiltered): Only send gdb_stdout and gdb_stderr
to hook. Otherwise send it to fputs.
* monitor.c monitor.h (monitor_get_dev_name): New function. Does
the obvious.
* remote-e7000.c: Remove debugify stuff. Change printf, fprintf
to _filtered forms to make output appear in GUIs. Replace all
uses of SERIAL_READCHAR with readchar, which has better error
checking.
* (e7000_parse_device): Add prototype.
* (readchar): Improve doc. Handle random serial errors.
* (expect): Disable notice_quit code. It's busted. Remove
serial error handling (it's now handled in readchar). Remove
remote_debug echoing. That's handled in readchar as well.
* (e7000_parse_device): Remove serial_flag arg. It's not
necessary.
* (e7000_open): Split into two pieces. Second part is
e7000_start_remote, and is error protected. Now, when we connect
to the target, we setup the initial frame and registers so that
the user gets an immediate indication of where the target is.
* (gch): Remove debug output. That's handled by readchar.
* (e7000_read_inferior_memory): Handle errors better.
* (_initialize_remote_e7000): Get rid of `<xxx>' things from
command names. They show up when doing completion and confuse
things horribly.
* ser-e7kpc.c: Remove the last seven months of brain damage. Get
rid of the DLL's since we can access the device directly from Win32s
and Win95. Get rid of debugify crud.
* serial.c: Remove debugify cruft.
* (serial_logchar serial_log_command serial_write serial_readchar
serial_send_break serial_close): Merge common functionality into
serial_logchar. Clean up rest of routines.
* sparclet-rom.c: Disembowel. Leave only download routine.
Download routine now switches to remote target automatically.
* top.c (disconnect): Only define if SIGHUP is defined. Cleans
up MSVC/Win32 problem.
* utils.c (gdb_flush): Don't call hook unless it's for gdb_stdout
or gdb_stderr.
* config/sh/tm-sh.h: Define TARGET_SH for WinGDB.
* config/sparc/tm-sparclet.h: Remove override for prompt.
* procfs.c: Substantial (but incomplete) changes to support
sysv4.2mp procfs as implemented in UnixWare 2.1. The procinfo
struct now has substructs like struct flt_ctl instead of
just a fltset_t and has a ctl_fd, status_fd, as_fd, and
map_fd instead of a single fd. Non-sysv4.2mp procfs models
still have the structs and multiple fds, but don't use the
entire struct and the four fds all point to the same thing.
We use PROCFS_USE_READ_WRITE to decide whether to talk to
procfs with reads/writes or use ioctl instead. We use
HAVE_MULTIPLE_PROC_FDS to determine whether procfs really has
multiple fds or not. PROC_NAME_FMT is split out into
CTL_PROC_NAME_FMT, AS_PROC_NAME_FMT, MAP_PROC_NAME_FMT,
STATUS_PROC_NAME_FMT.
(procfs_notice_signals): now a necessary wrapper around
(notice_signals): which are the new guts for noticing signals
(open_proc_file): gets a new flag arg used in sysv4.2mp to
determine whether or not to attempt to open the ctl_fd.
(procfs_read_status): new local function, reads procfs status
(procfs_write_pcwstop): new local function, writes a PCWSTOP
(procfs_write_pckill): new local function, writes a PCKILL
(unconditionally_kill_inferior): remove signo since we now
just call procfs_write_pckill().
(procfs_xfer_memory): call lseek with SEEK_SET rather than 0
(proc_iterate_over_mappings): the whole function is ifdefed
on UNIXWARE to keep things readable.
Expanded the syscall_table to include new potential sysv4.2mp
members. Note that all ifdefs of UNIXWARE should be eliminated
if possible or renamed to describe what's being selected for a
bit better. Sysv4.2mp and IRIX both have SYS_sproc so the
IRIX specific code now also checks it's not UNIXWARE.
* config/i386/tm-i386v42mp.h: also define HAVE_PSTATUS_T,
HAVE_NO_PRRUN_T, PROCFS_USE_READ_WRITE, and UNIXWARE
* config/mips/nm-irix4.h: set CTL_PROC_NAME_FMT et al to
"/debug/%d" as PROC_NAME_FMT used to be
mips_skip_stub, mips_ignore_helper): New functions for dealing
with MIPS16 call/return thunks.
(mips_init_frame_pc_first): New function to implement
INIT_FRAME_PC_FIRST macro; includes code from old macro plus
new code to skip over MIPS16 thunks.
(mips_frame_chain): Skip over MIPS16 thunks.
* config/mips/tm-mips.h (mips_in_call_stub, mips_in_return_stub,
mips_skip_stub, mips_ignore_helper): Declare.
(IN_SOLIB_CALL_TRAMPOLINE, IN_SOLIB_RETURN_TRAMPOLINE,
SKIP_TRAMPOLINE_CODE, IGNORE_HELPER_CALL): New macros that invoke
the above functions.
(INIT_FRAME_PC_FIRST): Change to invoke mips_init_frame_pc.
(mips_init_frame_pc): Declare.
* infrun.c (wait_for_inferior): Use new IGNORE_HELPER_CALL macro
to decide if certain library function calls should be ignored.
* config/mips/tm-mips.h (REGISTER_CONVERT_TO_TYPE,
REGISTER_CONVERT_FROM_TYPE): Swap words if target, not host,
is big-endian and if registers are 32 bits.
* mips-tdep.c (mips_print_register, mips_extract_return_value,
mips_store_return_value): Fix floating-point word-order problems on
little-endian targets introduced by changes of Mar 21.
New UnixWare 2.1 configuration
* config/i386/i386v42mp.mt: new
* config/i386/i386v42mp.mh: new
* config/i386/tm-i386v42mp.h: new
* config/i386/nm-i386v42mp.h: new
* configure.tgt: added new entries
* configure.host: added new entries
* configure, configure.in: Allow gdbserver to be configured
for cross-target environments.
* gdbserver/Makefile.in: Add simulator support.
* gdbserver/configure.in: Eliminate assumption that host == target.
Simplify using gdb/configure.tgt and gdb/configure.host.
Fix other minor configuration errors.
* gdbserver/low-sparc.c: Fix compile error.
* gdbserver/remote-utils.c: Eliminate assumption that registers
and addresses are four bytes. Fix minor compile errors and warnings.
* gdbserver/server.c: Rewrite numerous instances of identical code
for starting inferior processes to call new function start_inferior.
Eliminate assumption that registers and addresses are four bytes.
* gdbserver/server.h: Add missing prototypes to eliminate compiler
warnings.
* gdbserver/low-sim.c: New file to mate gdbserver with simulators.
* config/mips/vr5000.mt: Add Vr5000 simulator support to gdbserver.
* config/i386/linux.mh: Eliminate gdbserver support as a first step
in moving such support from host to target makefile fragments.
* config/i386/linux.mt: Move gdbserver support here from linux.mh.
be two byte aligned. Round argument sizes up to two byte boundary.
Write out args in two byte hunks.
(mn10200_push_return_address): Implement.
* config/mn10200/tm-mn10200.h (EXTRACT_RETURN_VALUE): Abort for
structures > 8 bytes (temporary).
(STORE_RETURN_VALUE): Likewise.
(CALL_DUMMY): No longer undefine.
(USE_STRUCT_CONVENTION): Use for args > 8 bytes.
(REG_STRUCT_HAS_ADDR): Define.
Inferior function calls for the mn10200.
comments, formatting, etc. Plus other minor fixes for problems
I found during my first pass over the mn10200 port.
(mn10200_analyze_prologue): New function.
(mn10200_frame_chain, mn10200_init_extra_frame_info): Use it.
* config/mn10200/tm-mn10200.h: Lots of updates/improvements to
comments, formatting, etc. Minor fixes for problems I found during
my first pass over the mn10200 port.
(TARGET_*_BIT): Define appropriately for ints, long longs, doubles and
pointers.
(REGISTER_VIRTUAL_TYPE): Define as a long.
(EXTRACT_RETURN_VALUE): Rework to deal with long ints living
in register pairs.
(STORE_RETURN_VALUE): Similarly.
Checking in my initial changes, prologue scanning, etc.
Current gdb testsuite results:
=== gdb Summary ===
# of expected passes 3684
# of expected failures 40
# of unexpected failures 6
* config/mips/tm-mips.h (MIPS16_BIG_BREAKPOINT,
MIPS16_LITTLE_BREAKPOINT, BREAKPOINT_FROM_PC): Define.
(ABOUT_TO_RETURN): Call new function mips_about_to_return.
(mips_breakpoint_from_pc, mips_about_to_return): Declare.
* mem-break.c (memory_breakpoint_from_pc): New function.
(memory_insert_breakpoint, memory_remove_breakpoint): Use
memory_breakpoint_from_pc to determine breakpoint contents and size.
* target.h (memory_breakpoint_from_pc): Declare.
* monitor.c (monitor_insert_breakpoint): Use memory_breakpoint_from_pc
to determine size of breakpoint instruction.
* mips-tdep.c (mips32_decode_reg_save, mips16_decode_reg_save):
New helper functions for mips_find_saved_regs.
(mips_find_saved_regs): Recognize mips16 prologues.
(mips_addr_bits_remove): Strip off upper 32 bits of address
when target CPU is 32 bits but CORE_ADDR is 64 bits.
(mips_step_skips_delay): No branch delay slot on mips16.
(gdb_print_insn_mips): Disassemble mips16 code.
(mips_breakpoint_from_pc, mips_about_to_return): New functions.
(REGISTER_NAMES): Elimination registers not found on the mn10200.
(PC_REGNUM, MDR_REGNUM, PSW_REGNUM): Corresponding changes.
(LIR_REGNUM, LAR_REGNUM): Delete. They don't exist on the mn10200.
Start mn10200 gdb port by adding copies of mn10300
target-specific files with all instances of mn10300 changed
to mn10200 to start with.
* mn10200-tdep.c: new
* config/mn10200/tm-mn10200.h: new, REGISTER_SIZE is 24 bits not 32,
SP_REGNUM and FP_REGNUM are different, also no lar or lir.
* config/mn10200/mn10200.mt: new
* mn10300-tdep.c: wrote/fixed implementations of
mn10300_frame_chain, mn10300_init_extra_frame_info,
mn10300_frame_saved_pc
* config/mn10300/tm-mn10300.h: redefine INIT_EXTRA_FRAME_INFO
and INIT_FRAME_PC macros
Backtracing starting to work correctly.
* mn10300-tdep.c: made a lot more generic, ripping out code
from copied target (no more mn10300_scan_prologue,
init_extra_frame_info, and mn10300_fix_call_dummy calls)
* config/mn10300/tm-mn10300.h: undefine INIT_EXTRA_FRAME_INFO
and INIT_FRAME_PC macros
ENABLE_OBS, and THREAD_DB_OBS. These are consolidated into LIBS
and CONFIG_OBS.
* configure configure.in: Clean up test cases around thread support.
start-sanitize-v850
* configure.tgt (v850-*-*): Include v850ice.o and v850.lib if
host is Windows.
end-sanitize-v850
* c-valprint.c ch-valprint.c cp-valprint.c eval.c expprint.c
printcmd.c valops.c value.h values.c: Add bfd_section arg to
value_at and value_at_lazy.
* coffread.c dbxread.c elfread.c mdebugread.c minsyms.c symtab.h:
Add bfd_section arg to prim_record_minimal_symbol_and_info.
* corefile.c gdbcore.h printcmd.c valops.c: Use read_memory_section
instead of read_memory. It takes a bfd_section arg.
* coffread.c dbxread.c elfread.c gdb-stabs.h objfiles.h: Remove
unnecessary cast for assignment of struct dbx_symfile_info.
Struct objfile now uses a real pointer instead of PTR for this
element.
* dbxread.c (dbx_symfile_init): Stash bfd section pointers for
text, data and bss into dbx_symfile_info.
* exec.c (xfer_memory): Handle transfers for user-specified
sections.
* findvar.c (read_var_value locate_var_value): Copy bfd section
from the symbol to the value.
* gdb-stabs.h: Add section pointers for text, data and bss
sections.
* maint.c (translate address command): Add test code for overlay
address translation.
* printcmd.c (do_examine do_one_display): Now takes a bfd section
arg.
* (print_formatted x_command): Record current section along with
current address for repeated commands.
* sparc-nat.c (fetch_inferior_registers): Change
target_xfer_memory to target_{read write}_memory to allow changes
to target_xfer_memory interface for section info.
* symmisc.c (dump_msymbols print_symbol): Print section
assocaited with symbol.
* symtab.c (fixup_symbol_section): New routine to
add section info to symbols returned by lookup_symbol.
* symtab.h (struct general_symbol_info): Add bfd section to
symbols.
* target.c target.h (target_xfer_memory): Add bfd section to
args.
* (target_read_memory_section): New routine to read data from a
specific section.
* (target_memory_bfd_section): New global variable to pass bfd
section in to targets.
* valarith.c (value_add value_addr value_array): Preserve bfd
section when computing new value.
* value.h (struct value): Add bfd section to values.
* values.c (allocate_value value_copy): Initialize/preserve bfd
section.
* (unpack_double): Clean up _MSC_VER conditionals to remove
duplicate code.
start-sanitize-v850
* v850ice.c: New module to support communication with NEC's
PC-based ICE.
* config/v850/tm-v850.h (REGISTER_NAMES): Replace sp, gp, fp, and
ep names with rxx names. sp and fp are renamed via a different
mechanism.
end-sanitize-v850
* mn10300-tdep.c (mn10300_push_arguments): rewrote
also removed code elsewhere that made use of RP_REGNUM
* config/mn10300/tm-mn10300.h: ripped out RP_REGNUM, V0_REGNUM,
ARG0_REGNUM, ARGLAST_REGNUM (all not appropriate for mn10300
arch.), redefined SAVED_PC_AFTER_CALL, EXTRACT_RETURN_VALUE,
EXTRACT_STRUCT_VALUE_ADDRESS, STORE_RETURN_VALUE
with separate LITTLE_BREAKPOINT and BIG_BREAKPOINT definitions;
this fixes problem with setting breakpoints in little-endian
programs in the simulator.
of 64-bit values on Windows.
* config/i386/xm-windows.h: Leave CC_HAS_LONG_LONG defined,
undefine PRINTF_HAS_LONG_LONG, so that 64-bit values will
be printed without loss of upper bits.
* sparclet-stub.c: a few clean-ups, removing dead code
* config/sparc/tm-sparclet.h: make registers ASR15, ASR19 invisible
(they're not useful, you can't change, write or even read them)
* sparclet-rom.c: Remove includes of Unix system files.
Add function "sparclet_supply_register" so that parse_register_dump
will not seg-fault by calling a null function pointer.
Remove XMODEM support (unfinished work?).
Remove flag "MO_HANDLE_NL", so monitor's output can be read by humans.
Add fill command.
Remove colon from getreg.resp_delim so PSR register will work.
Remove pointer to sparclet_load (downloading SREC's doesn't work).
Null out local register names for %g0, all %cc and all %asr regs,
since the monitor can't report them. Will return zero instead.
* sparclet-stub.c: New -- remote protocol support for sparclet CPU.
* config/sparc/tm-sparclet.h: Re-arrange REGISTER_NAMES:
Add back %g0 and %psr, add %cc coprocessor regs, add %asr regs.
Adjust NUM_REGS and REGISTER_BYTES accordingly
Added some generic target-independant code for managing call-dummy frames.
Wed Nov 27 10:32:14 1996 Michael Snyder <msnyder@cleaver.cygnus.com>
* breakpoint.c: DELETE command will not delete CALL_DUMMY breakpoint.
* blockframe.c: Add target-independant support for managing
CALL_DUMMY frames on the host side.
* frame.h: Declarations for generic CALL_DUMMY frame support.
* h8300-tdep.c: Add target function calls using generic frame support.
* config/h8300/tm-h8300.h: config for generic target function calls.
start-sanitize-m32r
* m32r-tdep.c: Add target function calls using generic frame support.
* config/m32r/tm-m32r.h: config for generic target function calls.
end-sanitize-m32r
* sh-tdep.c: Add target function calls using generic frame support.
* config/sh/tm-sh.h: config for generic target function calls.
start-sanitize-v850
* v850-tdep.c: Add target function calls using generic frame support.
* config/v850/tm-v850.h: config for generic target function calls.
end-sanitize-v850
* valops.c: ADD PUSH_RETURN_ADDRESS so that it doesn't have to be
done by PUSH_ARGUMENTS when there's no CALL_DUMMY.
* tm-d10v.h (REGISTER_VIRTUAL_SIZE): Modified.
(REGISTER_VIRTUAL_TYPE): Modified for PC_REGNUM and SP_REGNUM.
(REGISTER_CONVERTIBLE): Make PC and SP convertible.
(REGISTER_CONVERT_TO_VIRTUAL): Define.
(REGISTER_CONVERT_TO_RAW): Define.
(D10V_MAKE_DADDR): Define.
(D10V_MAKE_IADDR): Define.
* sh-tdep.c: Add functionality for target function calls.
* config/sh/tm-sh.h: Add support for target function calls.
This is a safety check-in: everything works, and there'll be another
clean-up round shortly.
Tue Nov 12 12:06:58 1996 Michael Snyder <msnyder@cleaver.cygnus.com>
* m32r-tdep.c: Add functionality for target function calls.
* valops.c: Small change to support target function calls.
* config/m32r/tm-m32r.h: Add support for target function calls.
This is a safety checkin -- everything works, but there'll be another
clean-up round later.
config/mips/tm-mips.h: Add/fix bugs for 64-bit mips support.
* defs.h: Cleanup; add prototypess
* corefile.c: Change FIXME #ifdef
* win32-nat.c: Include windefs instead of windows.h.
* utils.c: Add routines for printing addresses and registers
based on type size.
* d10v-tdep.c: Fix some problems with inferior function calls.
* config/d10v/tm-d10v.h (EXTRA_FRAME_INFO): Change dummy to be
a pointer to the dummy's stack instead of just a flag.