step_resume_breakpoint for IN_SIGTRAMP cases.
* infrun.c (wait_for_inferior), breakpoint.h (struct bpstat_what),
breakpoint.c (bpstat_what): Move step_resume from its own field of
the struct bpstat_what into the main_action. Make it override
other breakpoints. This is a conservative change in the sense
that before the step resume breakpoint was a breakpoint.c
breakpoint, hitting the step resume breakpoint overrode even
calling bpstat_stop_status.
Change all references to stdout/stderr to gdb_stdout/gdb_stderr.
Replace all calls to stdio output functions with calls to
corresponding _unfiltered functions (`fprintf_unfiltered')
Replaced calls to fopen for output to gdb_fopen.
Added sufficient goo to utils.c and defs.h to make the above work.
The net effect is that stdio output functions are only directly used
in utils.c. Elsewhere, the _unfiltered and _filtered functions and
GDB_FILE type are used.
In the near future, GDB_FILE will stop being equivalant to FILE.
The semantics of some commands has changed in a very subtle way:
called in the right context, they may cause new occurences of
prompt_for_continue() behavior. The testsuite doesn't notice anything
like this, though.
Please respect this change by not reintroducing stdio output
dependencies in the main body of gdb code. All output from commands
should go to a GDB_FILE.
Target-specific code can still use stdio directly to communicate with
targets.
that clears the `inserted' flag for all breakpoints and deletes
any breakpoints which should go away between runs of programs.
* inflow.c (generic_mourn_inferior), infrun.c (init_wait_for_inferior),
remote-es.c (es1800_load), comments in exec.c and corelow.c:
Use it instead of mark_breakpoints_out.
* breakpoint.c (mark_breakpoints_out): Update comment, tm-rs6000.h
uses it in a completely different context.
* breakpoint.c (breakpoint_re_set_one): Add bp_call_dummy case.
* alpha-nat.c, alpha-tdep.c, config/alpha/alpha-osf1.mt,
config/alpha/nm-alpha.h, config/alpha/tm-alpha.h, osfsolib.c:
New files.
* Makefile.in: Add new files and dependencies.
* configure.in: Add alpha target.
* config/alpha/alpha-osf1.mh (NATDEPFILES): Add osfsolib.o
* config/alpha/alpha-osf1.mh (MH_CFLAGS): Remove, we can handle
shared libraries now.
* config/alpha/xm-alpha.h: Cleanup, get MAKEVA_* defines right.
* defs.h (CORE_ADDR): Make its type overridable via CORE_ADDR_TYPE,
provide `unsigned int' default.
* breakpoint.c (breakpoint_auto_delete): Delete only if we really
stopped for the breakpoint.
* stabsread.c, stabsread.h (define_symbol): Change valu parameter
to a CORE_ADDR.
* stabsread.c (read_range_type): Handle the case where the lower
bound overflows and the upper doesn't and the range is legal.
* infrun.c (resume): Do not step a breakpoint instruction if
CANNOT_STEP_BREAKPOINT is defined.
* inferior.h (CALL_DUMMY_LOCATION): New variant AT_ENTRY_POINT.
Now that we have the bp_call_dummy breakpoint the call dummy code
is no longer needed. PUSH_DUMMY_FRAME, PUSH_ARGUMENTS and
FIX_CALL_DUMMY can be used to set up everything for the dummy.
The breakpoint for the dummy is set at the entry point and thats it.
* blockframe.c (inside_entry_file, inside_entry_func): Do not stop
backtraces if pc is in the call dummy at the entry point.
* infcmd.c (run_stack_dummy): Handle AT_ENTRY_POINT case. Use
the expected breakpoint pc when setting up the frame for
set_momentary_breakpoint.
* symfile.c (entry_point_address): New function for AT_ENTRY_POINT
support.
* valops.c (call_function_by_hand): Handle AT_ENTRY_POINT case.
infcmd.c (step_1),
infrun.c (wait_for_inferior): collapse SHIFT_INST_REGS ifdef and insert macro.
* m88k-tdep.c: include ieee-float.h. new global target_is_m88110.
new const struct ext_format_m88110 for float format.
(pic_prologue_code): add braces.
(next_insn): remove unused variable buf.
(frame_find_saved_regs): remove unused variables next_addr,
saved_regs, regnum.
(frame_locals_address): remove unused variables frame, ap.
(frame_args_address): remove unused variables frame, ap.
(push_parameters): add some breaks and a default case.
* remote-bug.c: remove redundant includes of value.h, target.h,
serial.h.
(bug_open): corrected typo, sr_multi_scan -> gr_multi_scan.
(bug_fetch_register): special case sfip register for m88110.
remove flag bit masking of pc registers. This should be handled
by the ADDR_BITS_* macros.
(bug_store_register): special case sfip register for m88110.
Corrected sprint format for extended registers.
Some of the following is in #ifdef CALL_DUMMY_BREAKPOINT_OFFSET.
* breakpoint.h (enum bptype): Add bp_call_dummy.
(struct bpstat_what): Add call_dummy field.
* infrun.c (wait_for_inferior): Deal with it.
* breakpoint.c (bpstat_what): Deal with call dummy breakpoint.
* infcmd.c (run_stack_dummy): Set the call dummy breakpoint.
* config/sparc/tm-sparc.h: Define CALL_DUMMY_BREAKPOINT_OFFSET.
* stabsread.c (define_symbol): Make the caddr_t hack apply to `function
returning foo' as well as `pointer to foo'.
* remote.c [REMOTE_BREAKPOINT]: Use for breakpoint insn if defined.
* config/m68k/tm-m68k.h: Define it.
* mem-break.c, breakpoint.c: Improve comments.
Tue Jul 13 13:35:31 1993 Frederic Pierresteguy (F.Pierresteguy@frcl.bull.fr)
* config/m68k/tm-dpx2.h: Replace "tm-68k.h" with "m68k/tm-m68k.h".
* config/m68k/xm-dpx2.h: Define HAVE_TERMIOS not HAVE_TERMIO.
val.end is in the same function, not minimal symbols.
* source.c (line_info): Add a few more wrap_here's.
* i386-tdep.c (i386_follow_jump): Do byteswapping where needed and
don't make assumptions about sizes of host data types.
* blockframe.c, symtab.h (find_pc_partial_function): New arg endaddr.
* infrun.c, breakpoint.c, printcmd.c: Change callers.
* printcmd.c (containing_function_bounds): Remove.
* printcmd.c (disassemble_command): Use find_pc_partial_function,
not containing_function_bounds.
* infcmd.c (step_1): Use find_pc_partial_function rather than
trying to roll our own. Move check for a pc between SIGTRAMP_START and
SIGTRAMP_END in find_pc_partial_function, not step_1.
step_resume_break_address with step_resume_breakpoint (now local
to wait_for_inferior).
({insert,remove}_step_breakpoint): Remove.
(wait_for_inferior): Set step resume break with
set_momentary_breakpoint. Test hitting it with bpstat_stop_status
and bpstat_what (stop_step_resume_break removed).
* breakpoint.{h,c}, infrun.c: Return value from bpstat_what now struct
which includes previous return value as main_action, and a step_resume
bit.
* breakpoint.c (delete_breakpoint): If breakpoint was inserted, and
there is another breakpoint there, insert it.
* infrun.c (wait_for_inferior): Rearrange the spaghetti a bit. Use
a few more gotos.
Various: Clean up and add comments.
Remove bpstat_momentary_breakpoint. This was always kludgy
and is no longer used.
* breakpoint.h: Add enum bpstat_what.
breakpoint.h (struct bpstat), breakpoint.c (bpstat_stop_status):
stop and print fields of bpstat now per-breakpoint, not just
one for the whole chain.
breakpoint.{c,h} (bpstat_what): New function.
breakpoint.h: Remove bpstat_stop and bpstat_should_print.
infrun.c: Replace switch (stop_bpstat->breakpoint_at->type)
with call to bpstat_what.
README: Remove watchpoint/breakpoint bug from known bugs.
* breakpoint.h: Prototype bpstat_find_breakpoint.
* command.c (do_setshow_command): Use %u with var_{u,z}integer.
* command.{c,h}: New var_type var_integer.
main.c: Use it for history_size.
* rs6000-tdep.c, xcoffexec.c, config/rs6000/xm-rs6000.h, breakpoint.c:
Lint and byte-order fixups.
breakpoint.c (bpstat_print): Use it.
(print_it_normal): New function (from old bpstat_print code).
(bpstat_{alloc,stop_status}): Set print_it field.
* breakpoint.c (bpstat_stop_status): Use catch_errors when
evaluating watchpoint condition, via new function watchpoint_check.
Also stop if watchpoint disabled due to leaving its block.
* breakpoint.c (enable_breakpoint): Don't enable watchpoint if it
went out of scope.
* exec.c (exec_close): Fix storage leak.
* exec.c (exec_file_command): Make sure that bfd doesn't realign the
output sections when patching an executable.
* mips-nat.c (store_inferior_registers): Use REGISTER_PTRACE_ADDR
when writing all registers.
* mips-tdep.c (mips_push_dummy_frame): Save floating point registers
at the right offset in the dummy frame.
* mipsread.c (psymtab_to_symtab_1): Do not complain for stProc,
stStaticProc and stEnd symbols as they are generated by gcc-2.x.
* mipsread.c (mipscoff_new_init): Initialize stabsread and buildsym.
symtab.h, tm-i386v4.h, valprint.c, values.c: Lint.
* breakpoint.c, c-exp.y, coffread.c, command.c, environ.c, eval.c,
findvar.c, infcmd.c, infptrace.c, infrun.c, m2-exp.y, parse.c,
putenv.c, solib.c, sparc-xdep.c, symtab.c, tm-i386v.h, tm-sparc.h,
utils.c, valarith.c, valops.c, valprint.c, values.c:
Replace bcopy() use with memcpy(), which is more standard and can
take advantage of gcc's builtin functions for increased performance.
* breakpoint.c, buildsym.c, coffread.c, dbxread.c, i386-tdep.c,
ieee-float.c, infcmd.c, sparc-tdep.c, stack.c, symtab.c, symtab.h,
target.c, values.c:
Replace bzero() use with memset(), which is more standard and can
take advantage of gcc's builtin functions for increased performance.
* i386-tdep.c, main.c, valprint.c:
Replace bcmp() use with memcmp(), which is more standard and can
take advantage of gcc's builtin functions for increased performance.
(HFILES): Add call-cmds.h.
* call-cmds.h: New header for command fns called by other files.
* breakpoint.c (watchpoints_info): Remove, same as breakpoints_info.
(breakpoint_1): Remove unused type arg. Change callers.
all-breakpoints' command.
* (get_number): Allow users to enter negative breakpoint numbers.
* (breakpoint_1): Reformat display of 'info break' to show new
fields.
* (create_longjmp_breakpoint, breakpoint_re_set,
breakpoint_re_set_one, enable/disable_longjmp_breakpoint),
symfile.c (syms_from_objfile): Re-do
insertion of longjmp breakpoints. Move all code into
breakpoint_re_set, and call that instead of
create_longjmp_breakpoint in symfile.c.
* breakpoint.c (breakpoint_re_set): Use ALL_BREAKPOINTS_SAFE.
* symtab.c (find_pc_symtab): Handle having no objfiles.
* infcmd.c: Fix comment.
* objfiles.c (free_all_objfiles): Add.
* symfile.h (ALL_OBJFILES, ALL_OBJFILES_SAFE): Add.
* symfile.c (symbol_file_command): free all objfiles when
specifying a new symbol file.
(reread_symbols): Stat the file name, don't fstat the descriptor.
breakpoint.h, tm-sun4os4.h, tm-sparc.h, sparc-tdep.c, tm-mips.h,
mips-tdep.h, tm-sun3.h, tm-68k.h, m68k-tdep.h: Add support for
stepping (and nexting) through longjmp(). Also, cleanup
breakpoint handling quite a bit by creating explicit breakpoint
types instead of using magic breakpoint numbers.
Makefile.in: Update version to 4.4.3
machines with different sized basic types (ints, ptrs, etc).
(Idea from pierre@la.tce.com (Pierre Willard).)
* value.c (value_from_longest): Rename from value_from_long.
Handle pointer types as well as integers, so that targets with
different pointer sizes from the host can be accomodated.
* breakpoint.c, convex-tdep.c, eval.c, expprint.c, printcmd.c,
valarith.c, valops.c, valprint.c, value.h, values.c: Rename
uses of value_from_long to value_from_longest.
* eval.c, findvar.c, printcmd.c, valarith.c, valops.c: Pass
the correct pointer type to value_from_long{est}.
* remote-vx.c: Remove obsolete code for calling functions via
vxworks kludge interface (it referenced value_from_long).
* valops.c (value_string): Find malloc with lookup_misc_func, not
raw search.
* breakpoint.c, remote-vx.c: Reword strings printed by
catch_errors callers.
* core.c (core_open): Open file ourselves, read or r/w, depending on
write_files. Use bfd_fdopenr.
* gdbcore.h (write_files): New variable.
* exec.c (write_files): Define variable, add set&show for it.
(exec_file_command): Use write_files to open for read or r/write.
Make shared library reading happen automatically. These changes
are mostly from Peter Schauer <pes@regent.e-technik.tu-muenchen.de>.
* inferior.h (stop_soon_quietly): Add to exported variables.
* infrun.c (child_create_inferior): call solib hook, if defined.
(child_attach): call solib hook, if defined.
* solib.c: Include inferior.h. Add from_tty to so_list as kludge.
(find_solib): Use lookup_misc_func rather than hand-rolled.
(symbol_add_stub): New stub for catch_errors.
(solib_add): Avoid output if !from_tty. Catch errors rather
than just calling symbol_file_add and bombing.
(solib_create_inferior_hook): Interface with the target process
to let it read and alloc shared libs, then figure out what it did.
* core.c (validate_files): Fix typo, soften warning.
(Fix from Hiroto Kagotani <kagotani@cs.titech.ac.jp>.)
* utils.c (fputs_demangled): Avoid duplicate printing if
demangling is off. (Fix from J.T. Conklin <jtc@cayenne.com>.)
* infrun.c (proceed): Cast -1 to (CORE_ADDR) before comparing.
(Fix from pierre@la.tce.com (Pierre Willard).)
* main.c (catch_errors): Change argument to a char * from an int,
since a char * can point to a struct full of glop, but an int
is not guaranteed to be able to hold a pointer.
* breakpoint.c (breakpoint_cond_eval, bpstat_stop_status,
breakpoint_re_set_one, breakpoint_re_set): Adapt.
* core.c (core_open, solib_add_stub): Adapt.
* remote-vx.c (symbol_stub, add_symbol_stub, callers): Adapt.
chain before giving up with an internal error.
Sun Apr 21 21:43:10 1991 Jim Kingdon (kingdon at cygint.cygnus.com)
* value.h, values.c (value_{,free_to_}mark): New functions.
breakpoint.c (bpstat_stop_status): Use them.