Nomenclature change. BDM is a specific type of OCD
(On chip debugging). Wiggler is the parallel port box controlled
by Wigglers.dll. The faster target box from Macraigor Systems
is not a wiggler.
* ocd.c:
* ocd.h:
* ppc-bdm.c:
* ser-ocd.c:
Replace all instances of "wiggler_" with "ocd_" and change most other
instances of "wiggler" to "ocd" or "ocd device" depending on context.
* config/m68k/monitor.mt: remove remote-wiggler.o from TDEPFILES
until OCD with that target is supported again.
* 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
implied (missing) data field, as defined by cc1java.
(java_link_class_type): Type length and field offset (in interior)
now includes object header. Get static fields working.
* jv-lang.h (JAVA_OBJECT_SIZE): Update for change in Kaffe.
* jv-typeprint.c (java_type_print_derivation_info,
java_type_print_base): New functions, for better Java output.
* jv-valprint.c: Start to support Java-specific output.
Add a bunch of macros.
* coffread.c, dwarf2read.c, dwarfread.c, mdebugread.c, stabsread.c:
Update to use new macros.
* coffread.c, hpread.c, stabsread.c: Remove bugus TYPE_FIELD_VALUE.
* value.h, values.c (value_static_field): New function.
* cp-valprint.c, valops.c: Modify to use value_static_field.
the address of the virtual function.
From Peter Bloecher (Peter.Bloecher@eedn.ericsson.se).
* eval.c (evaluate_subexp_standard), valarith.c (value_x_unop):
Handle C++ operator *.
_WIN32.
(Tcl_Realloc, Tcl_Free): Likewise.
* configure.in: Check for cygwin32 environment. Define and
substitute WIN32LIBS and WIN32LDAPP. Always set configdir to
unix; setting it to win was for an old Tcl/Tk configuration
scheme.
* aclocal.m4 (CY_AC_LOAD_TKCONFIG): Substitute TK_BUILD_INCLUDES.
* Makefile.in (TK_CFLAGS): Add @TK_BUILD_INCLUDES@.
(WIN32LDAPP, WIN32LIBS): Define.
(CLIBS): Add $(WIN32LIBS).
(gdb): Use $(WIN32LDAPP).
* configure: Rebuild.
* findvar.c (registers_changed): Likewise.
Fixes memory "leak" reported by HP. Call from execute_command is for general
alloca cleanup; call from registers_changed is to fix hp's specific problem.
* partial-stab.h (case N_BINCL): detect missing partial symtab.
* dbxread.c: Add a complaint for N_BINCL without a corresponding
partial symtab. Remove earlier change of 5/27/97.
* sol-thread.c (sol_thread_[store, fetch]_registers): if
inferior_pid is an LWP rather than a Solaris thread, let
procfs handle the request.
(rw_common, sol_thread_xfer_memory): procfs_xfer_memory will
only work if inferior_pid points to an LWP (rather than a
Solaris thread). Use procfs_first_available to find a good LWP.
(info_solthreads): added a maintenance command to list all
known Solaris threads and their attributes.
* mips-tdep.c (mips_do_registers_info): Completely changed the
output format to be neat and columnar. Added the helper funcs
do_fp_register_row and do_gp_register_row. Also small mods to
mips_print_register, which is still used to print a single reg.
* sol-thread.c (sol_thread_[store, fetch]_registers): if
inferior_pid is an LWP rather than a Solaris thread, let
procfs handle the request.
(rw_common, sol_thread_xfer_memory): procfs_xfer_memory will
only work if inferior_pid points to an LWP (rather than a
Solaris thread). Use procfs_first_available to find a good LWP.
(info_solthreads): added a maintenance command to list all
known Solaris threads and their attributes.
* Makefile.in, configure.in, aclocal.m4: Add Itcl, Tix, and
IDE configuration information.
* gdbtk.c (breakpoint_notify): Send address, linenumber and
filename when a breakpoint is set. Avoids call to bp_info.
(gdbtk_init): Call Tcl_FindExecutable(). Add code to handle
Itcl, Tix and IDE initialization.
* defs.h (init_ui_hook): Change prototype to accept one arg.
* main.c (gdb_init): Change prototype to accept one arg.
* top.c (gdb_init): Accepts one argument which it uses to
call (*init_ui_hook), which will be gdbtk_init(). This is
used for calling Tcl_FindExecutable().
* gdbtcl/breakpoint.tcl (gdbtk_tcl_breakpoint): Change to
accept variable number of args for compatibility with
cchanges in gdbtk.c.
* configure: Regenerated.
* gdbtcl/tclIndex: Regenerated.
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.
if we can't get a debug format from GDB (we may be testing an
older GDB). Use a 10 second timeout when checking for the format.
* gdb.stabs/weird.exp: Fix quoting.
until it has been modified to work with the new testsuite.
* gdb.*/*.exp: Instead of causing 1 unresolved test when the
testcase won't compile, cause all of the testcases in the file to
fail instead.
* lib/gdb.exp(gdb_suppress_entire_file): New procedure.
(gdb_clear_suppressed): New procedure.
(gdb_stop_suppressing_tests): Only clear suppress_flag if
it contains a positive value.
(record_debugformat): Declare global function.
* buildsym.c (start_subfile): Initialize debugformat member
to NULL.
(record_debugformat): New function to record the format.
(end_symtab): Copy format into symtab debugformat member.
(end_symtab): Free subfile debugformat member.
* symmisc.c (free_symtab): Free debugformat when freeing
symtab.
* symfile.c (allocate_symtab): Initialize the new debugformat
member for new symtabs.
* symtab.h (struct symtab): Add debugformat member.
* source.c (source_info): Print the debug format.
* os9kread.c (os9k_process_one_symbol): Call record_debugformat
with "OS9".
* hpread.c (hpread_expand_symtab): Call record_debugformat
with "HP".
(hpread_process_one_debug_symbol): Ditto.
* dbxread.c (process_one_symbol): Call record_debugformat
with "stabs".
* coffread.c (coff_start_symtab): Call record_debugformat
with "COFF".
* xcoffread.c (read_xcoff_symtab): Call record_debugformat
with "XCOFF".
* dwarfread.c (read_file_scope): Call record_debugformat
with "DWARF 1".
* dwarf2read.c (read_file_scope): Call record_debugformat
with "DWARF 2".
* dstread.c (dst_end_symtab): Set debugformat to be
"Apollo DST".
* mdebugread.c (new_symtab): Set debugformat to be "ECOFF".
(get_debug_format): New function to get debug format.
(debug_format): New global variable to hold last value set
by get_debug_format.
* gdb.base/list.exp: Call get_debug_format and expect some
tests to fail for DWARF 1 and COFF formats.
* gdb.c++/ptype.exp: Ditto.
* gdb.c++/classes.exp: Ditto.
* gdb.c++/cplusfuncs.exp: Ditto.
* gdb.c++/inherit.exp: Ditto.
* gdb.c++/templates.exp: Ditto.
* gdb.c++/virtfunc.exp: Ditto.
host doesn't have a currently-open connection.
* config/sparclet.exp: Cleanups and fixes to make it generic for
any gdb stub target. Handle cases where gdb doesn't respond when
interrupted in a sane fashion.
* config/m32r.exp: Load sparclet.exp instead of trying to do the
same thing in a totally different way.
* config/monitor.exp: Pass in timeouts to gdb_expect instead of
setting "timeout".
(gdb_start): We set the global gdb_prompt variable in
default_gdb_init now.
global variables into the struct dieinfo structure.
(locval): Pass pointer to a dieinfo struct rather than a
pointer to the raw location information. Change prototype.
Set isreg, optimized_out, offreg and basereg as appropriate.
(struct_type): Call locval with dieinfo struct pointer.
(new_symbol): Ditto.
(new_symbol): Call locval and save location before testing
the values of the new dieinfo struct flags, set by locval.
unconditionally_kill_inferior): Undo Oct 26 1996 and Apr 26 1997
changes to trace PRFS_STOPTERM and handle PR_DEAD.
These changes tried to work around a problem with an early DU 4.0
release, but they trigger subtle timing dependent kernel bugs
in older OSF/1 releases.
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.
initialize.
(default_gdb_init): New procedure; allow gdb_init to be overridden
by a target configuration file.
(gdb_expect): Pass the timeout to remote_expect.
* config/dos.exp(dos_wait): Add timeout parameter.
* lib/remote.exp(remote_expect): Add timeout parameter.
(remote_wait): Ditto.
(standard_wait): Ditto. Also give up if the program outputs
more than 512,000 bytes.
* config/vxworks.exp: Use timeout parameter instead of setting
timeout variable.
* config/dos.exp: Ditto.
* config/ddb.exp: Ditto.
* lib/mondfe.exp: Ditto.
* lib/rlogin.exp: Ditto.
* lib/telnet.exp: Ditto.
* config/base68k.exp: Ditto.
* config/i386-bozo.exp: Ditto.
* config/gdb-comm.exp: Ditto.
* config/gdb_stub.exp: Ditto.
* config/i960.exp: Ditto.
* config/ddb-ether.exp: Ditto.
* config/sim.exp: Ditto.
* lib/g++.exp(g++_init): Use g++_include_flags instead of making
up the includes ourselves.
Add missing return statements after finding an "add imm{16,32},sp"
instruction.
(mn10300_frame_chain): Add in size of our register save area to find
our caller's frame if our caller does not have a frame pointer.
Fixes some problems debugging optimized code.
* gdbtk.c (gdb_get_breakpoint_info): Add string for new
enumeration del_at_next_stop to bpdisp array.
end-sanitize-gdbtk
* eval.c (evaluate_subexp_for_sizeof): Handle dereferencing
of non-pointer values.
* symtab.c (gdb_mangle_name): Improve mangling of nested types,
their physical names already include the class name.
* valops.c (value_cast): Handle upcast of a class pointer.
From Andreas Schwab (schwab@issan.informatik.uni-dortmund.de):
* corelow.c (get_core_registers): Make secname big enough.
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
here. Call gdb_target_exec before rebooting the target, to make
sure the connection to the target is closed.
(gdb_load): Pass the name of the executable to gdb_target_monitor.
Don't call gdb_file_cmd here; let gdb_target_monitor do it.
* config/gdbserver.exp: Pass the executable being loaded to
gdb_target_monitor. Don't call gdb_file_cmd here; let
gdb_target_monitor do it.
* gdb.disasm/hppa.exp: Don't use exec_output.
test_calls after restarting.
* lib/gdb.exp(gdb_run_cmd): Send jump command again after
reloading.
* gdb.base/watchpoint.exp: Fix typo.
* gdb.base/setshow.exp: Check for use_gdb_stub.
* gdb.base/break.exp: Fix continue until exit test for the gdb
stub case.
* gdb.base/langs.exp: Ditto.
* config/monitor.exp(gdb_load): Handle gdb_sect_offset and
gdb_load_offset. If we weren't given a file to load, figure out
what the current file is and use it.
* procfs.c (init_procinfo): new function, abstracts some code
shared by create_procinfo and do_attach;
(procfs_set_inferior_syscall_traps): new function, abstracts
some code needed by procfs_init_inferior, do_attach, and
procfs_lwp_creation_handler; (procfs_first_available): new
function, find any LWP that's runnable; (procfs_thread_alive):
replace stub function with real implementation;
(procfs_lwp_creation_handler): fix bug starting new child
threads; (info_proc): bug fixes and enhancements for the
"INFO PROCESSES" command; (close_procinfo_file): call new
function "delete_thread" to cleanup GDB's thread database;
(proc_init_failed): add new argument "kill", to control whether
process is killed (so this function can be shared by
create_procinfo and do_attach); (procfs_exit_handler): handle
exit from an attached process, and cleanup procinfo handles
when the process exits; (procfs_resume, procfs_wait): cleanup
after a thread when it exits; (do_attach, do_detach): handle
attached processes with multiple threads; plus some general
improvements in the diagnostic output.
* sol-thread.c (sol_thread_alive): replace stub with real
implementation; (thread_to_lwp, lwp_to_thread): enhance to
handle threads that may have exited; (sol_thread_attach): add
startup setup stuff; (sol_thread_detach): add unpush_target
call; (sol_thread_mourn_inferior): add unpush_target call;
(sol_thread_wait, sol_thread_resume): enhance to deal with
thread exit cleanly; (sol_thread_new_objfile,
sol_thread_pid_to_str): detect unsuccessful startup and
don't crash; plus some general cleanup.
* thread.c (delete_thread): new function, allows targets to
notify gdb when a thread is no longer valid.
* infrun.c (wait_for_inferior): don't try to detect a new
thread on receiving a TARGET_EXITED event.
* rs6000-tdep.c (frameless_function_invocation): Mark frames
with a zero PC as frameless to improve backtraces from core dumps
caused by dereferencing a NULL function pointer.
(frameless_function_invocation, frame_saved_pc, rs6000_frame_chain):
Handle frameless functions interrupted by a signal.
* sparc-tdep.c (sparc_init_extra_frame_info, sparc_frame_saved_pc):
Handle frameless functions interrupted by a signal.
* Finalize merge from Hurd folk.
Mon Oct 30 16:41:04 1995 Miles Bader <miles@gnu.ai.mit.edu>
* thread.c (thread_apply_command, thread_apply_all_command,
thread_command): Make sure TP is alive.
(thread_alive): New function.
Tue Nov 14 14:31:03 1995 Miles Bader <miles@gnu.ai.mit.edu>
* infrun.c (sig_print_info): Deal better with long signal names.
Wed Nov 22 15:23:35 1995 Miles Bader <miles@gnu.ai.mit.edu>
* thread.c (thread_id_to_pid): New function.
Fri Dec 1 13:25:25 1995 Miles Bader <miles@gnu.ai.mit.edu>
* gnu-nat.c: (set_thread_cmd_list, show_thread_cmd_list,
set_thread_default_cmd_list, show_thread_default_cmd_list):
New variables. (set_thread_cmd, show_thread_cmd,
set_thread_default_cmd, show_thread_default_cmd): New functions.
Fri Apr 18 15:20:16 1997 Miles Bader <miles@gnu.ai.mit.edu>
* gnu-nat.c (inf_startup): remove TASK parameter.
(inf_set_task): replace with new function (inf_set_pid).
* gdbthread.h: Add extern decl for thread_cmd_list.
* Makefile.in: Add rule for gnu-nat.o and i386gnu-nat.o (Gnu Hurd)
* config/i386/i386gnu.mh: remove rules for [i386]gnu-nat.o, now
in Makefile.in (as for other targets); add NATDEPFILE corelow.o to
satisfy symbol dependancy in solib.c (core_ops).
* target.[ch] conditionalize Mach-specific signals so that they
won't show up in non-Mach gdb's!
* thread.c: add function thread_id_to_pid; change name of static
function "thread_switch" to "switch_to_thread", to avoid conflict
with Mach global symbol; move thread_cmd_list to global scope
so targets can add their own thread commands.
* infrun.c: sig_print_info: allow for long signal names.
* gnu-nat.[ch]: tidying up comments.
* gnu-nat.c: move several functions to static scope, just for tidy;
remove calls to prune_threads and renumber_threads;
gnu_wait must not return -1 when inferior exits;
attach_to_child will modify inferior_pid in a way that allows
fork_inferior to remain unchanged;
remove extra arg from startup_inferior;
move mach-specific thread commands here from thread.c.
* procfs.c: Minor changes to make pre-ANSI compilers happy.
(procfs_notice_signals): Copy traced signal set back to
pi->prrun.pr_trace.
(unconditionally_kill_inferior): If PR_DEAD is defined,
rerun inferior after killing it.
floatformat_ieee_double_littlebyte_bigword for little endian
target byte order.
* utils.c (floatformat_to_doublest): Create local preswapped
copy of input for floatformat_littlebyte_bigword formats.
(get_field, put_field): Treat floatformat_littlebyte_bigword
the same as floatformat_little.
(floatformat_from_doublest): Postswap output words for
the floatformat_littlebyte_bigwords format.
does not require a command line arg, since most simulators
don't currently support passing such an arg into the simulated
program.
* gdb.base/commands.exp: Change tests to insert the proper
value as the arg to the first recursive factorial call. Change
compilation line to define FAKEARGV at compile time.
(DONT_RELOCATE_SYMFILE_OBJFILE): Removed.
* xcoffsolib.h (struct vmap): Add new members tvma, toffs and dvma,
remove tadj.
* exec.c (bfdsec_to_vmap): Initialize new vmap members, initialize
tstart and dstart with section VMA.
* rs6000-nat.c (vmap_symtab): Relocate relative to the VMA in the
object file.
(vmap_ldinfo, xcoff_relocate_core): Adjust tstart by section offset
of the text section, remove DONT_RELOCATE_SYMFILE_OBJFILE hack.
(vmap_exec): Relocate relative to the VMA in the object file,
relocate .bss section as well.
(xcoff_relocate_core): No longer adjust section addresses by VMA.
* rs6000-tdep.c (find_toc_address): Change type of tocbase
to CORE_ADDR.
* xcoffread.c (secnum_to_bfd_section): New routine to get
BFD section from CS section number.
(scan_xcoff_symtab): Make toc_offset section relative.
* symtab.c (total_number_of_methods): Avoid core dump if
baseclass type is still undefined.
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.
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.
o Provide poll_quit callback to simulators
so that they can poll for SIGINT on
clueless OS's.
o Add sim_stop to simulators so that clients
can request a halt (eg gdbtk's STOP button)
Works for PPC!
o Re-arange remote-sim.c so that the
hard work is moved from gdbsim_resume()
to gdbsim_wait() (where it should be).
(INSTALL_XFORM1): Remove.
(install-only): Use $(program_transform_name) directly, rather
than using $(INSTALL_XFORM) and $(INSTALL_XFORM1).
(uninstall): Transform name.
* 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
* (hexnumlen): Add prototype. Use max, not min.
* (remote_write_bytes remote_read_bytes): Fix max packet size
calculations to properly account for packet overhead. Also handle
(probably rare) case where remote_register_buf_size isn't set.
address.
* (remote_ops extended_remote_ops remote_desc remote_write_size):
Make static.
* (remote_fetch_registers remote_write_bytes remote_read_bytes):
Record size of response to fetch registers command, use this to
limit size of memory read and write commands.
* (push_remote_target): New function to make it possible to have
another target switch to the remote target.
* target.h: Add prototype for push_remote_target.
* sh-tdep.c (sh_frame_find_saved_regs): Fix sign extension bugs
for hosts which default to unsigned chars (such as SGI's).
* (_initialize_sh_tdep): Don't set remote_write_size. It's now
handled automatically in remote.c.
* gdb.base/help.exp: update help msg for INFO ADDR; add help test
for INFO SYMBOL; add help tests for OVERLAY commands.
* gdb.base/default.exp: add tests for INFO SYMBOL command;
add tests for OVERLAY commands
* gdb.base/overlays.c overlays.exp foo.c bar.c baz.c grbx.c ovlymgr.h
d10v.ld m32r.ld d10vovly.c m32rovly.c: add test case for overlays.
* gdb.base/sigall.c: add usestubs code frag
* gdb.base/watchpoint.c: turn on complex watchpoint test for M32R.
Except for the two m32r modules, this checkin is for
overlay support.
* blockframe.c: blockvector_for_pc_sect(), block_for_pc_sect(),
find_pc_sect_function(), find_pc_sect_partial_function(): new
functions for debugging overlays; pc without section is ambiguous.
* breakpoint.[ch]: add section pointer to breakpoint struct;
add section argument to check_duplicates(); check section as well
as pc in [breakpoint_here_p(), breakpoint_inserted_here_p(),
breakpoint_thread_match(), bpstat_stop_status()];
add section argument to describe_other_breakpoints();
use INIT_SAL() macro to zero-out new sal structures;
make resolve_sal_pc() fix up the sal's section as well as its pc;
match on section + pc in clear_command() and delete_breakpoint();
account for overlay sections in insert_breakpoints(),
remove_breakpoint() and breakpoint_re_set_one();
all this to support overlays where a PC is not unique.
* exec.c: change xfer_memory() to handle overlay sections.
* findvar.c: change read_var_value() to handle overlay sections.
* frame.h: declaration for block_for_pc_sect() [blockframe.c].
* infcmd.c: jump_command() warns against jumping into an overlay
that's not in memory. Also use INIT_SAL() to initialize sals.
* infrun.c: wait_for_inferior() sets a flag to invalidate cached
overlay state information; Also use INIT_SAL() to init sals.
* m32r-rom.c: modify load routines to use LMA instead of VMA.
* m32r-stub.c: mask exit value down to 8 bits; screen out any
memory read/writes in the range 600000 to a00000, and ff680000
to ff800000 (hangs because nothing is mapped there); fix strcpy().
* maint.c: maintenance command "translate-address" supports overlays.
* minsyms.c: lookup_minimal_symbol_by_pc_sect() supports overlays.
* objfiles.[ch]: add ovly_mapped field to the obj_section struct;
this constitutes gdb's internal overlay mapping table. Add macro
ALL_OBJSECTIONS() to loop thru the obj_structs and look at overlays.
Add function find_pc_sect_section().
* printcmd.c: modify print_address_symbolic() with overlay smarts;
modify address_info() with overlay smarts; add function sym_info()
to support the INFO SYMBOL command (translate address to symbol(s));
modify disassemble_command() to work on unmapped overlays.
* source.c: use INIT_SAL() to initialize sals.
* symfile.[ch]: change generic_load() to use section's LMA address
instead of VMA address, for overlay sections.
Add numerous functions for finding a PC's section / overlay,
translating between VMA and LMA address ranges, determining if an
overlay section is mapped, etc. Add several user commands for
overlay debugging. Add support for a "generic" form of automatically
reading overlay mapping info from the inferior (based on the default
(simple) overlay manager which Cygnus provides as an example).
* symtab.[ch]: add functions find_pc_sect_symtab(),
find_pc_sect_psymtab(), find_pc_sect_psymbol(), find_pc_sect_line()
for lookup; modify lookup_symbol and decode_line_1() to use them;
modify find_function_start_sal() to account for overlay sections;
add macro INIT_SAL() for initializing struct symtab_and_line.
* target.c: fix a comment in the declaration of target_ops.
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.
or netport.
* lib/gdb.exp: Set GDB to [transform gdb] if we're using a remote host
and it's not already set.
* gdb.base/setshow.exp: Only test the run command if the target
isn't using a stub and if it supports argument passing.
* symtab.c (find_pc_symtab): change to support the case
where the objfile is reordered and contains both coff and
stabs debugging info (continue on if a psymtab isn't found).
* gdb.disasm/mn10300.exp: Run mn10300 disassembler tests.
* gdb.disasm/Makefile.in: Remove "mn10300" when cleaning.
disassembler testsuite for the mn10300.
* 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.
globals.
(remote_resume, remote_wait): Use them.
* d10v-tdep.c: Set the above hooks.
(tracesource): New GDB variable, controls source display in
traces.
(display_trace): Find and display source line if requested.
(trace_info): Mention empty trace buffer if appropriate.
(tdisassemble_command): Robustify argument handling.
copy first two floating point arguments to general registers, so that
MIPS16 functions will receive the arguments correctly.
(mips_print_register): Print double registers correctly on
little-endian hosts.
(mips_extract_return_value): Return double values correctly
on little-endian hosts.
* mdebugread.c (parse_procedure): Adjust address of procedure relative
to address in file descriptor record; this accounts for constant
strings that may precede functions in the text section. Remove
now-useless lowest_pdr_addr from argument list and all calls.
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
* Makefile.in: Install gdbtcl dir instead of gdbtk.tcl.
* gdbtk.c: Added some ifdefs for Windows. Changed GDBTK_FILENAME
to GDBTK_LIBRARY, which is now a path to search.
(gdb_path_conv): New function. Convert Cygwin32 pathname to
DOS-style pathname.
* aclocal.m4, configure.in: Changes for Windows builds.
* configure: Rebuilt.
bpstat_stop_status): Do not disable watchpoints going out of scope.
(insert_breakpoints): Make sure that the current frame is valid
before calling find_frame_addr_in_frame_chain.
* top.c (setup_user_args): Handle quotes and backslashes.
(print_gdb_version): Update copyright year.
(sim_open): Return a `descriptor' as result.
(*): New argument of descriptor result from sim_open.
* remote-sim.c (gdbsim_desc): Renamed from gdbsim_open_p.
(gdbsim_open): Record result of sim_open in gdbsim_desc.
Pass argv list to sim_open, argv[0] = pseudo program name.
(*): Pass gdbsim_desc to sim_foo fns.
* 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.
* symtab.h (INIT_SAL): New macro to initialize symtab_and_line,
to insure consistant initialization of unused fields to zero.
* symtab.c: replace initializations of sals with new macro INIT_SAL.
* breakpoint.c: ditto.
* infrun.c: ditto.
* infcmd.c: ditto.
* source.c: add call to INIT_SAL macro.
* gdb.base/help.exp: Ditto.
* gdb.base/list.exp: Ditto.
* gdb.base/signals.exp: Ditto.
* config/monitor.exp(gdb_load): If gdb,use_standard_load is
set, use remote_ld to download the testcase instead of
the GDB loader.
instead of in the Sun specific section.
(Include Files): The GNU linker supports the N_BINCL
optimization. Clarify the N_BINCL value, and what it is used
for.
(Procedures): Document N_FUN with an empty string to mark the end
of a function.
(Typedefs): Mention that Sun compilers may use N_GSYM for a type.
(Sun Differences): Remove this node, as the information is now
elsewhere in the main document.
(Stab Section Basics): Mention that the GNU linker may optimize
stabs and remove the leading N_UNDF symbol.
(mips_initialize): LSI PMON doesn't support 'set regsize' command.
(pmon_wait): Don't need to exit and re-enter debug mode on LSI
PMON after a continue; it causes target program misbehavior.
(mips_fetch_register): Don't fetch unsupported registers; this
cuts down on wasted serial traffic.
support for WinGDB. Add mswin to configdirs.
* configure.in configure: Move calls to configure.host and
configure.tgt to the top of configure.in to allow them to set
config variables before they are referenced.