if it exists.
Remove static declaration of free_actions.
* tracepoint.h: Add declaration of free_actions.
* gdbtk.c (gdbtk_modify_tracepoint): Define new tracepoint modification
hook.
(gdbtk_print_frame_info): Define this hook so that current_source_symtab
is set properly.
(gdb_actions_command): Use free_actions () from tracepoint.c/h.
* 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.
* tracepoint.c (tracepoint_operation): call free_actions instead
of free. (free_actions): eliminate some memory leaks for actions.
(validate_actionline): pass string arg by reference, so we can
change the pointer. Change all memrange collection arguments to
canonical form (literal address and size), to enforce early
evaluation. Accept UNOP_MEMVAL (assembly variables) for
trace collection. (parse_and_eval_memrange): accept expressions
for the address and size fields of a memrange (and evaluate
them immediately). (several places): use -1 instead of zero
to distinguish an absolute memrange from a register-relative one.
(encode_actions): add handling for UNOP_MEMVAL (assembly variable).
NO_SINGLE_STEP is defined.
Date: Tue, 3 Feb 1998 16:28:11 -0500
From: "Gordon W. Ross" <gwr@mc.com>
To: bug-gdb@prep.ai.mit.edu
Subject: gdb/infptrace.c
* blockframe.c (generic_frame_chain_valid): A frame pointer may
be valid if it is equal to the frame pointer of its caller (ie.
not necessarily strictly INNER_THAN). Allows frameless functions.
printing of large addresses using %A format specifier.
(monitor_printf_noecho, monitor_printf): Use monitor_vsprintf
instead of vsprintf.
* dve3900-rom.c (_initialize_r3900_rom): Use %A instead of %Lx
to print addresses.
* gdbtk.c: Merge from Foundry branch.
(TclDebug): New debugging function.
(gdb_loc): For frames, find address of calling function
instead of whatever is on the stack (usually the next
instruction).
(gdb_listfiles): Takes an optional pathname argument and
returns an alphabetized list of basenames of files in the
path.
* breakpoint.c (enable_breakpoint): Preserve breakpoint
disposition when enabling a breakpoint.
* symtab.c (find_pc_sect_line): If no symbol information
is found, return correct pc anyway.
and "post_add_symbol_hook". These hooks are called before we begin reading
symbols, and after we finish.
(generic_load): Use new symbol reading hooks and get rid of compiler warning.
* gdbtk.c (gdbtk_init): Add hooks for pre- and post-symbol reading.
(gdbtk_pre_add_symbol): New function: the pre-add-symbol hook.
(gdbtk_post_add_symbol): New function: the post-add-symbol hook.
(find_file_in_dir): New function. Moved the guts of gdb_find_file_command
into here to allow its use by others.
(gdb_loc): Use find_file_in_dir to return the real path to the file
(or "N/A" if we can't find it).
* configure.in (TIX_LIB_EXT): Define new variable for those special cases
when TCL_SHLIB_SUFFIX is not enough to specify the dependency.
* configure: Regenerate.
(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.
* win32-nat.c (child_mourn_inferior): Call ContinueDebugEvent to
let the child exit.
(child_kill_inferior): Respond to all debug events as the child is
terminating.
(uninstall): Add $(EXEEXT) to file name to remove.
(gdb$(EXEEXT)): Rename target from plain gdb.
(gdb1$(EXEEXT)): Rename target from plain gdb1.
(clean, mostlyclean): Add $(EXEEXT) to binary names to remove.
* config.sub: Create the vr4111 as a copy of vr4100.
gas--
* config/tc-mips.c (md_begin): Create the vr4111 as a copy of
the vr4100.
gcc--
* config.sub: Create the vr4111 as a copy of the vr4100.
* configure.in: Same.
* configure: Rebuild.
gdb--
* configure.tgt: Create the vr4111 as a copy of the vr4100.
* config.sub: Create the vr4111 as a copy of vr4100.
gas--
* config/tc-mips.c (md_begin): Create the vr4111 as a copy of
the vr4100.
gcc--
* config.sub: Create the vr4111 as a copy of the vr4100.
* configure.in: Same.
* configure: Rebuild.
gdb--
* configure.tgt: Create the vr4111 as a copy of the vr4100.
use TCL_SHLIB_SUFFIX to specify the suffix of the library file so that
we don't expect to see "libfoo.a" instead of "libfoo.{so,sl, etc}".
* configure: Regenerate.
* tracepoint.c (finish_tfind_command): improved algorithm for
deciding when we've "stepped" into a new stack frame.
(map_args_over_tracepoints): loop over tracepoint list "safely",
since list elements may be deleted during loop.
(read_actions): add actions to history list.
[From Keith Seitz (kseitz@cygnus.com)]
* actiondlg.tcl (change): handle '$' in register names.
gdbtk.c (gdb_actions_command): extract and save step count
from "while-stepping" command
* 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.
Only worked if the first element in the list was
being deleted.
o When MAINLINE (reading main objectfile and need to
clear out old data), change elfread.c so that the
psymbol table is emptied once (in elf_symfile_read)
instead of multiple times in each *_read_psymtab
function.
o For elf_symfile_read, load dwarf2 symbols last
(so that they are searched for first).
o In mdebug_psymtab_read, delete check to see if
symbols for current source file already loaded.
Test doesn't work for .h files. Above change
works better
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
symtab_and_line, not struct tracepoint
arrange data more like gdb_get_breakpoint_info
(tracepoint_notify): use info in struct symtab_and_line,
not struct tracepoint
(gdbtk_init): add command "gdb_get_tracepoint_list" into
interpreter
(gdb_get_tracepoint_list): new function
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.
* tracepoint.c (finish_tfind_command): call do_display so that
auto-displays are updated by tfind. Also, keep track of frame
and current-function so that tfind behaves like stepping (only
show the stack frame if we step into a new function or return).
(gdbtk_init): move ide_initialize_paths out of IDE ifdef
* configure.in (TCL_LIBS, CONFIG_DEPS): add IDE libraries for all
builds
(CONFIG_OBS): remove tracepoint.o, which should always be included
* configure: regenerate
* Makefile.in (install-only): ALWAYS install the new gdbtk
(REMOTE_OBS): add tracepoint.o
the directory name
* Merge (lots) with foundry-971118-build
* Makefile.in (install-only): install the new gdbtk, not the old
* top.h: add declaration of get_prompt
* top.c (get_prompt): new function
* gdbtk.c (gdbtk_call_command): also run idle hooks for class_trace
commands
(gdbtk_init): add new commands "gdb_get_locals", "gdb_get_args",
"gdb_get_function", "gdb_get_line", "gdb_get_file",
"gdb_tracepoint_exists", "gdb_get_tracepoint_info", "gdb_actions",
and "gdb_prompt"
(gdb_get_vars_command): new function
(gdb_get_line_command): new function
(gdb_get_file_command): new function
(gdb_get_function_command): new function
(gdb_get_tracepoint_info): new function
(gdbtk_create_tracepoint): new function
(gdbtk_delete_tracepoint): new function
(tracepoint_notify): new function
(tracepoint_exists): new function
(gdb_actions_command): new function
(gdb_tracepoint_exists_command): new function
(gdb_prompt_command): new function
* main.tcl: initialize gdbtk_state(readline)
* console.tcl (invoke): get realine working
(activate): add prompt argument for readline
(setprompt): add prompt argument for readline
* interface.tcl (gdbtk_tcl_readline): hack to get readline working
* lots: Merge with foundry-971118-build
* console.tcl (setprompt): get prompt from gdb
* prefs.tcl (pref_set_defaults): add tracepoint defaults
* interface.tcl (gdbtk_tcl_tracepoint): new function
* src.tcl (constructor): set default behavior of left click, make
a tracepoint dot, too
(fill_files): "new" function: ripped out of "location"
(location): use fill_files instead
(do_bp): add support for tracepoints
(bp_line): add support for tracepoints
(set_tracepoint): new function
(config_win): add "Set tracepoint here" to right-click menu
* actiondlg.tcl: new file to help with tracepoint data collection actions
* tracedlg.tcl: new file to help with tracepoints
* infcmd.c: export registers_info, for use by other modules.
* printcmd.c: export output_command, for use by other modules.
* stack.c: export locals_info and args_info, for use by other modules.
not yet ready for public release, so no changelog entry yet (and I'm
sanitizing the files out). Just want to get them into the repository
for now, so I can begin keeping their history. Not checking in the
Makefile change that would cause them to be built and linked.
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.
prototype, convert its arguments as if by assignment. Otherwise,
do the usual promotions.
* stabsread.c (define_symbol): Set the TYPE_FLAG_PROTOTYPED flag
on functions' types when we can; all C++ functions should get it,
and if the Sun-style prototype notation is in the stabs, we can
notice that.
* Makefile.in: pepper with EXEEXTs in appropriate places,
set SHELL = @SHELL@ for those lame hosts that don't have a /bin/sh
For some reason, EXEEXT isn't getting substututed in correctly
so for now, set EXEEXT to empty string
* aclocal.m4: add EXEEXT setting rule
* configure.in: call it
* configure: regenerate
* Makefile.in: pepper with EXEEXTs in appropriate places,
set SHELL = @SHELL@ for those lame hosts that don't have a /bin/sh
* config/i386/cygwin32.mh: because cygwin.dll calls malloc/realloc
to allocate memory for environ space, gdb cannot use memory
checks -- set -DNO_MMCHECK
of a variable lost during last change. Don't perform
assignment inside conditionals.
* stabsread.c (symbol_reference_defined): Return -1 for error/not
found. All callers changed appropriately.
(define_symbol): Don't perform assignment inside conditionals.
entries.
* dbxread.c: More comment cleanups.
* stabsread.c: Fix various violations of the GNU coding and
formatting standards. Update/add comments to make code clearer.
(resolve_reference): Delete unused function.
(ref_search_val): Remove function. It didn't belong in stabsread.c
(resolve_live_range): No longer returns a value. Do not add it
to the live range list until the entire range stab has been parsed.
(get_substring): Remove duplicate declaration.
(resolve_symbol_reference): Now static. Remove unnecessary code
to deal with cleanups.
(ref_add): Use xrealloc instea of realloc.
(process_reference): Reorganize slightly to make clearer.
* stabsread.h (resolve_symbol_reference): Remove declaration.
(resolve_reference): Likewise.
* symtab.c (find_active_alias): New function.
(lookup_block_symbol): Use find_active_alias.
* symtab.h (struct range_list): Fix dangling struct live_range
reference.
(ref_search_val): Remove decl.
* symtab.h (struct range_list): Renamed from struct live_range.
(struct symbol): Remove struct live_range_info substruct.
Bring the alias list and range list fields up to the toplevel
as "aliases" and "ranges".
(SYMBOL_ALIASES, SYMBOL_RANGES): Corresponding changes.
(SYMBOL_RANGE_START, SYMBOL_RANGE_END, SYMBOL_RANGE_NEXT): Delete.
* stabsread.c: Corresponding changes.
Bring first round of cleanups over from r5900 branch.
* parse.c, parser-defs.h (length_of_subexp): Make non-static.
* jv-exp.y (FieldAccess): Handle dollar-VARIABLE as primary.
(ArrayAccess): Likewise. Also remove warnings.
(CastExpression): Implement (typename) UnaryExpression.
(push_qualified_expression_name): Fix small bug.
* jv-lang.c: Use TYPE_TAG_NAME, not TYPE_NAME for class names.
(_initialize_jave_language): Fix typo (jave -> java).
(java_language): Java does *not* have C-style arrays.
(java_class_from_object): Make more general (and complicated).
(java_link_class_type): Fix typo "super" -> "class". Handle arrays.
(java_emit_char, java_printchar): New function.
(evaluate_subexp_java case BINOP_SUBSCRIPT): Handle Java arrays.
* jv-valprint.c (java_value_print): Implement printing of Java arrays.
(java_print_value_fields): New function.
(java_val_print): Better printing of TYPE_CODE_CHAR, TYPE_CODE_STRUCT.
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
(mips16_heuristic_proc_desc): Calculate offsets of registers
saved by entry pseudo-op after rest of prologue has been read.
Use set_reg_offset to ignore all but the first save of a given
register.
(mips32_heuristic_proc_desc): Initialize frame adjustment value.
* remote-sim.c (gdbsim_store_register): Don't update registers
that have a null or empty name.
* findvar.c (read_register_bytes): Don't fetch registers
that have a null or empty name.
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