bp_watchpoint_scope breakpoints.
(struct breakpoint): Add val_chain and related_breakpoint fields
for use by watchpoints.
* breakpoint.c (within_scope): Delete. No longer used.
(TARGET_CAN_USE_HARDWARE_WATCHPOINT): Provide default definition.
(target_{remove,insert}_watchpoint): Likewise.
(can_use_hardware_watchpoint): New function.
(remove_breakpoint): New function to remove a single breakpoint
or hardware watchpoint.
(insert_breakpoints): Handle insertion of hardware watchpoints.
Store a copy of the value chain derived from the watchpoint
expression.
(remove_breakpoints): Simplify by using remove_breakpoint.
(delete_breakpoint): Likewise.
(watchpoint_check): Delete the watchpoint and watchpoint scope
breakpoints when the watchpoint goes out of scope. Save & restore
the current frame after checking watchpoints.
(breakpoint_init_inferior): Likewise (restarting the program
makes all local watchpoints go out of scope).
(bpstat_stop_status): Handle hardware watchpoints much like normal
watchpoints. Delete the watchpoint and watchpoint scope breakpoint
when the watchpoint goes out of scope. Remove and reinsert all
breakpoints before returning if we stopped when a hardware watchpoint
fired.
(watch_command): Use a hardware watchpoint when possible. If
watching a local expression, build a scope breakpoint too.
(map_breakpoint_numbers): Also call given function for any
related breakpoints.
(disable_breakpoint): Never disable a scope breakpoint.
(enable_breakpoint): Handle hardware breakpoints much like normal
breakpoints, but recompute the watchpoint_scope breakpoint's
frame and address (if we have an associated scope breakpoint).
(read_memory_nobpt): Handle hardware watchpoints like normal
watchpoints. When necessary handle watchpoint_scope breakpoints.
(print_it_normal, bpstat_what, breakpoint_1, mention): Likewise.
(clear_command, breakpoint_re_set_one, enable_command): Likewise.
(disable_command): Likewise.
* blockframe.c (find_frame_addr_in_frame_chain): New function.
Extern prototype added to frame.h
* infrun.c (wait_for_inferior): Set current_frame and select
a frame before checking if we stopped due to a hardare watchpoint
firing. Handle stepping over hardware watchpoints.
(normal_stop): Remove unnecessary call to select_frame.
* value.h (value_release_to_mark): Declare.
* values.c (value_release_to_mark): New function.
* procfs.c (procfs_wait): Add cases for hardware watchpoints.
(procfs_set_watchpoint, procfs_stopped_by_watchpoint): New functions.
* hppab-nat.c (hppa_set_watchpoint): New function.
* config/pa/nm-hppab.h (STOPPED_BY_WATCHPOINT): Define.
(HAVE_STEPPABLE_WATCHPOINT): Define.
(TARGET_CAN_USE_HARDWARE_WATCHPOINT): Define.
(target_{insert,delete}_watchpoint): Define.
* xcoffread.c (read_xcoff_symtab): Ignore symbols of class C_EXT,
smtyp XTY_LD, sclass XMC_DS (external data segment label). They
often have the same names as debug symbols for functions, and
confuse lookup_symbol().
* config/pa/tm-hppa.h (REGISTER_BYTES): Use 4 rather than
REGISTER_RAW_SIZE (1).
Together these changes work around a bug in HP's compiler. Both
seem to be necessary.
* gdb.t15/return.exp (return_tests): Handle targets where "return"
stops in mid-line in the caller. Add xfail for returning a float
value on X86 targets.
are in the .plt section.
* minsyms.c (lookup_solib_trampoline_symbol_by_pc,
find_solib_trampoline_target): New functions for handling
stepping into -g compiled shared libraries.
* symtab.h (lookup_solib_trampoline_symbol_by_pc,
find_solib_trampoline_target): Add prototypes.
* config/tm-sunos.h (IN_SOLIB_TRAMPOLINE, SKIP_TRAMPOLINE_CODE):
Define to handle stepping into -g compiled shared libraries.
* config/tm-sysv4.h (SKIP_TRAMPOLINE_CODE): Define to handle
stepping into -g compiled shared libraries.
* configure.in: Add mips-*-sysv4* support.
* config/mips/mipsv4.mh, config/mips/mipsv4.mt,
config/mips/tm-mipsv4.h, config/mips/xm-mipsv4.h, mipsv4-nat.c:
New files for MIPS SVR4 support.
* Makefile.in: Update for new mipsv4 files.
* alpha-tdep.c (heuristic_proc_desc, find_proc_desc): Use
read_next_frame_reg to obtain the frame relative stack pointer.
* mips-tdep.c (heuristic_proc_desc): Use read_next_frame_reg to
obtain the frame relative stack pointer.
* mdebugread.c (parse_partial_symbols, psymtab_to_symtab1):
Handle stStatic and stStaticProc symbols in stabs-in-ecoff output
by entering them into the minimal symbol table.
* printcmd.c (print_scalar_formatted): Do not try to unpack to
a long for float formats.
* solib.c: Include "elf/mips.h" only if DT_MIPS_RLD_MAP does not
get defined in <link.h>.
* solib.c (solib_add): Add shared library sections to the section
table of the target before adding the symbols.
* partial-stab.h: Relocate static and global functions.
* dbxread.c (read_dbx_symtab): Remove unused variable
end_of_text_address. Relocate text_addr when passing it
to end_psymtab.
For Alpha OSF/1 targets, enable gdb to set breakpoints in shared
library functions before the executable is run. Retrieve dynamic
symbols from stripped executables.
* mipsread.c (read_alphacoff_dynamic_symtab): New function.
* mipsread.c (mipscoff_symfile_read): Use it. Issue warning message
if no debugging symbols were found.
* alpha-tdep.c (alpha_skip_prologue): Silently return the unaltered
pc if memory at the pc is not accessible and GDB_TARGET_HAS_SHARED_LIBS
is defined.
* config/alpha/nm-alpha.h (GDB_TARGET_HAS_SHARED_LIBS): Define,
OSF/1 has shared libraries.
descriptor was found, then assume this was not a frameless
function invocation.
(frame_saved_pc): If the saved PC is in a linker stub, then
return the return address which the linker stub will return to.
library functions before the executable is run.
* elfread.c (elf_symtab_read): Handle symbols for shared library
functions.
* sparc-tdep.c (in_solib_trampoline): Renamed to in_plt_section
and moved to objfiles.c.
* objfiles.c (in_plt_section): Moved to here from sparc-tdep.
* config/tm-sysv4.h (IN_SOLIB_TRAMPOLINE): Use new in_plt_section.
* config/sparc/tm-sun4sol2.h (IN_SOLIB_TRAMPOLINE): Removed,
the new generic definition from tm-sysv4.h works for Solaris.
number_of_symbols and i to long. Rename get_symtab_upper_bound to
bfd_get_symtab_upper_bound. Check for errors from
bfd_get_symtab_upper_bound and bfd_canonicalize_symtab.
* nlmread.c (nlm_symtab_read): Same changes.
Remove all conditionals and definitions for ptx.
I386_REGNO_TO_SYMMETRY moved to here from symm-tdep.c.
Fix addresses of floating point registers in REGISTER_U_ADDR.
STORE_STRUCT_RETURN now handles cc and gcc conventions.
FRAME_CHAIN, FRAMELESS_FUNCTION_INVOCATION, FRAME_SAVED_PC,
IN_SIGTRAMP, SIGCONTEXT_PC_OFFSET defined to make backtracing through
signal trampoline code work.
* config/i386/xm-symmetry.h: Clean up, it is now only used for Dynix.
Remove all conditionals and definitions for ptx.
Remove KDB definitions.
match_bitstring_literal): Guard tolower calls with isupper,
tolower on old BSD systems blindly subtracts a constant.
* dbxread.c (read_ofile_symtab): Check for __gnu_compiled_* as
well when determining the producer of the object file.
* mdebugread.c (has_opaque_xref): New function to check for
cross reference to an opaque aggregate.
* mdebugread.c (parse_symbol, parse_partial_symbols): Do not
enter typedefs to opaque aggregates into the symbol tables.
* mdebugread.c (parse_external): Remove skip_procedures argument,
it has always been 1. Remove code that handled stProc symbols,
it was never executed and was wrong, as the index of a
stProc symbol points to the local symbol table and not to the
auxiliary symbol info. Update caller.
* mdebugread.c (parse_partial_symbols): Do not enter external
stProc symbols into the partial symbol table, they are already
entered into the minimal symbol table.
* config/i386/tm-symmetry.h: Clean up, it is now only used for Dynix.
Remove all conditionals and definitions for ptx.
I386_REGNO_TO_SYMMETRY moved to here from symm-tdep.c.
Fix addresses of floating point registers in REGISTER_U_ADDR.
STORE_STRUCT_RETURN now handles cc and gcc conventions.
FRAME_CHAIN, FRAMELESS_FUNCTION_INVOCATION, FRAME_SAVED_PC,
IN_SIGTRAMP, SIGCONTEXT_PC_OFFSET defined to make backtracing through
signal trampoline code work.
* config/i386/xm-symmetry.h: Clean up, it is now only used for Dynix.
Remove all conditionals and definitions for ptx.
Remove KDB definitions.
* symm-nat.c (store_inferior_registers): Fetch registers before
storing them to obtain valid floating point control registers.
Store fpu registers.
* symm-nat.c (print_1167_control_word): Dynix 3.1.1 defines
FPA_PCR_CC_C0 and FPA_PCR_CC_C1, avoid duplicate case value.
* symm-nat.c (fetch_inferior_registers, child_xfer_memory):
Fix typos.
* symm-nat.c (child_resume): Update type of `signal' parameter.
* symm-tdep.c (I386_REGNO_TO_SYMMETRY): Moved to tm-symmetry.h.
sequent dynix.
* gdb.t06/signals.exp: Add clear_xfail for sequent dynix.
* gdb.t15/funcargs.exp: Conditionally step again to really
finish from marker_call_with_trampolines. Handle the case where
the first step from within call_with_trampolines already steps
us back to main.
* gdb.t15/gdbme.c: Add comment to closing brace of
call_with_trampolines for funcargs.exp.
than just giving up the first time it happens.
* remote.c: Document sequence numbers.
(remote_store_registers): Change syntax of 'P' request so that it
never looks like a sequence number.
ChangeLog os9kread.c remote-os9k.c
* os9kread.c (record_minmal_symbol): add section_offset to
relocate minimal symbol table.
* os9kread.c (read_minimal_symbols): ditto.
* os9kread.c (os9k_symfile_init): increase size of dbg and stb
file names.
* os9kread.c (read_os9k_psymtab): if there's no dbg file, just
return. Also if file addr is 0 leave it 0, not to relocate.
* remote-os9k.c (_initialize_remote_os9k): add 'set remotexon',
'set remotexoff' and 'set remotelog' commands.
* gdb.t07/watchpoint.exp: Accept both "Watchpoint" and
"Hardware watchpoint" throughout file.
(test_watchpoint_triggered_in_syscall): New test.
(test_complex_watchpoint): New test.
(set_demangling_style, set_demangling_command): Use savestring not
strdup. We were not dealing properly with a NULL return from
strdup, and were not declaring strdup (the system header may or
may not have it).
of a function.
(skip_trampoline_code): Rewrite and add support for argument
relocation stubs stubs, import/export stubs, calls through
"_sr4export" and cascaded trampolines.
into. Tests trampoline problems on the PA.
* funcargs.exp (localvars_in_indirect_call): No longer expect
stepping into indirect call to fail on PAs.
(test_stepping_over_trampolines): New test.
(REGISTER_NAMES): Add entries for "right-half" of FP registers.
(REGISTER_RAW_SIZE, MAX_REGISTER_RAW_SIZE): Do not treat FP regs
differently. All registers are four bytes.
(REGISTER_BYTES, REGISTER_BYTE): Simplify now that all registers are
the same size.
(REGISTER_VIRTUAL_TYPE): Use builtin_type_float for all FP regs.
* hppa-tdep.c (pa_print_fp_reg): Update to print even numbered FP
registers as both single and double values (fetching 2nd 32bit half
as necessary). Annotate each register printed with its precision.
<jrs@world.std.com>.
(symbol_completion_function): Don't declare rl_point and
rl_line_buffer; they are now declared in readline.h.
(show_commands): Don't declare history_base; it is declared in
history.h.
* command.c (lookup_cmd): Don't delete trailing whitespace.
* mpw-config.in: New file, MPW configuration fragment.
* mpw-make.in: New file, MPW makefile fragment.
* config/m68k/xm-mpw.h: New file, MPW host definitions.
* ser-mac.c: New file, Mac serial interface.
for the structure's type. All callers changed.
* valops.c (call_function_by_hand): Check REG_STRUCT_HAS_ADDR
for each structure argument rather than assuming it's either
true or false for all structure arguments.
* config/pa/tm-hppa.h (REG_STRUCT_HAS_ADDR): Depend only
on the length structure passed, not the compiler used.
* config/sparc/tm-sparc.h (REG_STRUCT_HAS_ADDR): Accept additional
argument for the structure's type.
* alpha-tdep.c: Gobs of changes (many imported from mips-tdep) to
improve remote debugging efficiency. Also fixed problems with
doing function calls for programs with no entry points.
* infcmd.c (run_stack_dummy): Use CALL_DUMMY_ADDRESS instead of
entry_point_address.
* inferior.h (PC_IN_CALL_DUMMY): ditto.
* mdebugread.c (parse_symbol, parse_procedure, parse_external,
parse_lines): Pass section_offsets info to these routines so that
we can relocate symbol table entries upon readin.
* (psymtab_to_symtab_1): Set symtab->primary to tell
objfile_relocate to do relocations for our symbols.
* (ecoff_relocate_efi): New routine to relocate adr field of PDRs
(which hang off of the symbol table).
* Use prim_record_minimal_symbols_and_info instead of
prim_record_minimal_symbols to supply section info to make minimal
symbol relocations work.
* minsyms.c (prim_record_minimal_symbols_and_info): If section is
-1, try to deduce it from ms_type.
* objfiles.c (objfile_relocate): Use ALL_OBJFILE_SYMTABS where
appropriate. Handle relocation of MIPS_EFI symbols special. Also,
add code to relocate objfile->sections data structure.
* remote.c (get_offsets): Use new protocol message to acquire
section offsets from the target.
* (remote_wait): Get rid of relocation stuff. That's all handled
by objfile_relocate now.
* config/alpha/alpha-nw.mt (TM_FILE): Use tm-alphanw.h.
* config/alpha/tm-alpha.h: Define CALL_DUMMY_ADDRESS, and
VM_MIN_ADDRESS.
* config/alpha/tm-alphanw.h: DECR_PC_AFTER_BREAK=0, VM_MIN_ADDRESS=0.
improve remote debugging efficiency. Also fixed problems with
doing function calls for programs with no entry points.
* infcmd.c (run_stack_dummy): Use CALL_DUMMY_ADDRESS instead of
entry_point_address.
* inferior.h (PC_IN_CALL_DUMMY): ditto.
* mdebugread.c (parse_symbol, parse_procedure, parse_external,
parse_lines): Pass section_offsets info to these routines so that
we can relocate symbol table entries upon readin.
* (psymtab_to_symtab_1): Set symtab->primary to tell
objfile_relocate to do relocations for our symbols.
* (ecoff_relocate_efi): New routine to relocate adr field of PDRs
(which hang off of the symbol table).
* Use prim_record_minimal_symbols_and_info instead of
prim_record_minimal_symbols to supply section info to make minimal
symbol relocations work.
* minsyms.c (prim_record_minimal_symbols_and_info): If section is
-1, try to deduce it from ms_type.
* objfiles.c (objfile_relocate): Use ALL_OBJFILE_SYMTABS where
appropriate. Handle relocation of MIPS_EFI symbols special. Also,
add code to relocate objfile->sections data structure.
* remote.c (get_offsets): Use new protocol message to acquire
section offsets from the target.
* (remote_wait): Get rid of relocation stuff. That's all handled
by objfile_relocate now.
* config/alpha/alpha-nw.mt (TM_FILE): Use tm-alphanw.h.
* config/alpha/tm-alpha.h: Define CALL_DUMMY_ADDRESS, and
VM_MIN_ADDRESS.
* config/alpha/tm-alphanw.h: DECR_PC_AFTER_BREAK=0, VM_MIN_ADDRESS=0.
(TM_CLIBS): Define to -lm, the simulator uses the sqrt() function.
* config/sparc/tm-sp64.h (FPS_REGNUM, CPS_REGNUM): Define (so
sparc-tdep.c compiles).
(TARGET_PTR_BIT): Must be a constant now, fix at 64.
find, to locate TM_FILE, XM_FILE, and NAT_FILE. This is faster
and means that these filenames no longer need be unique across all
the config/* directories.
* configure.in: Put the config/*/ into TM_FILE, etc.
* m68k-stub.c (computeSignal): Return SIGFPE, not SIGURG, for chk
and trapv exceptions.
* target.h (struct section_table), objfiles.h (struct obj_section):
Change name of field sec_ptr to the_bfd_section. More mnemonic
and avoids the (sort of, for the ptx compiler) name clash with
the name of the typedef.
* exec.c, xcoffexec.c, sparc-tdep.c, rs6000-nat.c, osfsolib.c,
solib.c, irix5-nat.c, objfiles.c, remote.c: Change users.
* utils.c: Include readline.h.
* Makefile.in (utils.o): Add dependency.
* remote.c (getpkt): Add support for run-length encoding.
computing their offset from the start of the old buffer and adding
to the new buffer, rather than by assuming we can add the
difference between the old buffer and the new buffer (it might not
fit in an int). Merge in cosmetic differences from emacs regex.c
version of this macro.
The which it worked around was fixed on 25 Feb 94 in coffread.c,
so I'm nuking the command.
* symtab.c (find_addr_symbol): Comment out, no longer used.
that source_path doesn't contain the current_directory from when
GDB started up, init_source_path is no longer useful (and is
harmful because it clobbers a source_path set in $HOME/.gdbinit).
library functions before the executable is run. Retrieve dynamic
symbols from stripped executables.
* symtab.h (minimal_symbol_type): Add mst_solib_trampoline type.
* parse.c (write_exp_msymbol), symmisc.c (dump_msymbols),
symtab.c (list_symbols): Handle mst_solib_trampoline.
* minsyms.c (lookup_minimal_symbol): Handle mst_solib_trampoline
for all targets, remove IBM6000_TARGET dependencies.
* dbxread.c (read_dbx_dynamic_symtab): New function.
* dbxread.c (dbx_symfile_read): Use it.
* dbxread.c (SET_NAMESTRING): Set namestring to
"<bad string table index>" instead of "foo" if the string index is
corrupt.
* xcoffread.c (read_xcoff_symtab): Use mst_solib_trampoline instead
of mst_unknown.
* symtab.c (list_symbols): Take from_tty as parameter and pass it
to break_command. Handle mst_file_* minimal symbol types.
GNUTARGET.
* putenv.c: Removed, conflicts with system declaration of
putenv on RS/6000 running AIX 3.2.5, and above change makes it
unnecessary.
* Makefile.in: Change accordingly.
* procfs.c (procfs_create_inferior): Change comment accordingly.
while (0). That defeats the whole purpose of using do . . . while (0).
* mdebugread.c (parse_partial_symbols): Don't use ?: expression as
list for ADD_PSYMBOL_TO_LIST; the macro takes its address and
using a ?: expression as an lvalue is not portable.