* ocd.c: move ocd_write_bytes proto to ocd.h since it is used
by ppc-bdm.c, use OCD_LOG_FILE to help debugging, define
BDM_BREAKPOINT if not defined in tm.h
(ocd_error): add new error cases
(ocd_start_remote): send the OCD_INIT command before
OCD_AYT and OCD_GET_VERSION calls
(ocd_write_bytes): no longer static
(ocd_insert_breakpoint): no longer static
(ocd_remove_breakpoint): new
* ocd.h: add protos for ocd_write_bytes, ocd_insert_breakpoint,
and ocd_remove_breakpoint
* ppc-bdm.c: change bdm_ppc_ops so we call ocd_insert_breakpoint
and ocd_remove_breakpoint instead of memory_insert_breakpoint
and memory_remove_breakpoint.
(bdm_ppc_open): after calling ocd_open, modify DER
register so interrupts will drop us into debugging mode, finally
disable the watchdog timer on the board so we don't leave BDM
mode unexpectedly.
* 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.
(gdbtk_init): Add gdbtk_cleanup as a final cleanup. Uncomment
call to ide_initialize_paths. If we can't initialize the event
system, set GDBTK_IDE to 0 in the Tcl interpreter. Create the
ide_window_register and the ide_window commands. Initialize tk,
itcl, and tix after initializing the IDE.
Changes to OCD support to support wiggler box as well as
target boxes:
* ocd.c: change speed in init command to 0 from 80,
add (temporary) logging commands to help debugging,
(ocd_open): if "target ocd wiggler lpt" then use special
ser-ocd.c serial interface which communicates with Wigglers.dll,
otherwise do as we did before
(ocd_get_packet): add OCD_LOG_FILE and OCD_SET_CONNECTION to
switch of known commands of len 0
* ocd.h: add OCD_LOG_FILE
* serial.c (serial_open): do serial_interface_lookup on ocd
in the case of ocd
* ser-ocd.c: add buffer to contain responses from sending a
command to the Wigglers.dll.
(ocd_readchar): return curr char from buffer and increment ptr
(ocd_write): send buffer to Wigglers.dll, storing response in
return buffer and initializing curr location ptr to start of
buffer.
* 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.
_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.
(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".
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.