Commit Graph

88 Commits

Author SHA1 Message Date
Stu Grossman
fdfa331511 * Makefile.in, breakpoint.c, corelow.c, fork-child.c, inflow.c,
infrun.c, mac-nat.c, procfs.c, remote.c, sol-thread.c, thread.c,
	win32-nat.c, config/nm-lynx.h:  Rename thread.h to gdbthread.h to
	avoid conflict with Solaris /usr/include/thread.h.
1996-05-09 21:24:20 +00:00
Fred Fish
3f37b69612 * breakpoint.c (clear_momentary_breakpoints): Remove dead code
that is referenced nowhere else.
	(set_breakpoint): Ditto.
	(do_enable_breakpoint): Created from enable_once_breakpoint
	with a couple of changes.
	(enable_breakpoint): Call do_enable_breakpoint with an appropriate
	bpdisp enum value to set disposition of breakpoint.
	(enable_once_breakpoint): Ditto.
	(enable_delete_breakpoint): Ditto.
	* breakpoint.h (clear_momentary_breakpoints): Remove prototype.
	* symtab.c (find_pc_line): Improve comments.
	* gdbtk.c: Fix a couple of misspellings.
	* xcoffread.c: Ditto.
1996-05-08 23:34:34 +00:00
Jeff Law
e51481f967 * From Peter Schauer:
* breakpoint.h (enum bpdisp):  Add del_at_next_stop.
        * breakpoint.c (insert_breakpoints, watchpoint_check,
        bpstat_stop_status):  Avoid bad references to memory freed via
        delete_breakpoint on watchpoints going out of scope.
        Do not delete these watchpoints, disable them and change their
        disposition to del_at_next_stop instead.
        (breakpoint_auto_delete):  Delete all breakpoints whose disposition
        is del_at_next_stop.
        (breakpoint_init_inferior):  Use switch to avoid reference to
        already deleted breakpoint.
Fixes dangling pointer problems with watchpoints.
1996-05-02 18:43:28 +00:00
Peter Schauer
39ce68291e * breakpoint.c (delete_breakpoint): Fix bpt->val, bpt->exp
storage leaks.
	(breakpoint_re_set_one):  Fix b->exp, b->val, b->cond storage leaks.

	* infcmd.c (run_command), solib.c (locate_base):  Check for
	target_has_execution in addition to inferior_pid, a core file
	from a threaded program is yielding a non-zero inferior_pid.

	* sparc-tdep.c (get_saved_register):  Handle window registers
	in a dummy frame correctly.
1996-04-28 10:49:54 +00:00
Jeff Law
fa3764e2bf * From Peter Schauer.
* breakpoint.c (breakpoint_re_set_one):  Keep temporary
        breakpoints bp_until, bp_finish, bp_watchpoint_cope, bp_call_dummy
        and bp_step_resume in case breakpoint_re_set_one is called due
        to a step over a dlopen call.
        * infrun.c (wait_for_inferior):  Always remove breakpoints from
        inferior in BPSTAT_WHAT_CHECK_SHLIBS case.
1996-03-27 15:35:16 +00:00
Jeff Law
27b6a1fa2e * From Peter Schauer:
* breakpoint.c (internal_breakpoint_number): Move to file scope.
        (create_solib_event_breakpoint): Use an internal breakpoint number.
1996-03-06 16:36:13 +00:00
Stu Grossman
2f4973f852 Update copyrights. Add copyright notice to configure.in. 1996-01-05 17:11:45 +00:00
Stu Grossman
0fe1522ad0 * breakpoint.c (remove_breakpoint): Change error to warning so
that hardware watchpoint removal problems won't leave breakpoint
	traps in the target.
	* configure configure.in:  Make --enable-gdbtk be the default.
	* remote-e7000.c (e7000_insert_breakpoint,
	e7000_remove_breakpoint):  Use e7000 based breakpoints, not memory
	breakpoints.
	* (e7000_wait):  Adjust PC back by two when we see a breakpoint to
	compensate for e7000 maladjustment.
	* sparcl-tdep.c (sparclite_check_watch_resources):  Fix logic bug
	which prevented hardware watchpoints from working.
1996-01-05 00:42:36 +00:00
Stu Grossman
cd10c7e388 * breakpoint.c (breakpoint_re_set): #ifdef GET_LONGJMP_TARGET
around calls to create_longjmp_breakpoint.  Why install the
	breakpoints if we can't find the longjmp target?
	* infrun.c (wait_for_inferior):  Cleanup comments near call test.
	* remote-mips.c:  Fixed a bunch of prototypes to avoid char/int
	complaint from picky compilers.  Add comment to mips_expect.
	Replace all instances of sr_get_debug with remote_debug.
	* (mips_readchar):  Don't jam init string to monitor.
	mips_initialize() handles that.
	* (mips_receive_header):  Print better message when we get too
	much garbage.
	* (mips_request):  Allow caller to pass in buff to allow them to
	analyze the returned message.
	* (mips_initialize):  Re-do initialization to try sending a BREAK,
	a ^C, and then a download escape sequence.  Cleanup protocol
	startup.  Eliminate sleeps.  Clear breakpoints (if using monitor
	breakpoints).  Re-init frame.
	* (mips_detach):  Close down target.
start-sanitize-gm
	* (mips_resume):  Pass signal down to target.
	* (mips_create_inferior):  Start target with TARGET_SIGNAL_PWR.
end-sanitize-gm
	* (mips_wait):  Handle return status with registers, or breakpoint stuff.
	* (mips_kill):  Add ^C handling.
	* (mips_insert_breakpoint mips_remove_breakpoint):  Call new
	breakpoint stuff if enabled.
	* (calculate_mask remote_mips_set_watchpoint
	remote_mips_remove_watchpoint remote_mips_stopped_by_watchpoint):
	Hardware watchpoint/breakpoint stuff.
	* (common_breakpoint):  Common code for new monitor breakpoint commands.
	* (mips_load):  Don't use `prompt'.  It's a global variable.
	* top.c (dont_repeat_command):  New command for use in
	user-defined commands to suppress auto-repeat (by hittin return key).
start-sanitize-gm
	* utils.c (request_quit):  Call target_kill here.  Good idea.
	Needs a better implementation.
end-sanitize-gm
	* valops.c:  Add start of auto function-call abandonment capability.

start-sanitize-gm
	* c-exp.y:  Add code (currently disabled) to handle GM dynamic
	structures (it conflicts with @!).
	* eval.c (evaluate_subexp_standard):  ditto.
	* expprint.c (print_subexp dump_expression):  ditto.
	* expression.h (enum exp_opcode):  ditto.
	* parse.c (length_of_subexp):  ditto.
	* configure, configure.in:  Add mip*-*-magic* target.
	* magic.c magic.h:  Special routines to handle GM stuff (like
	stepping through dispatcher).
end-sanitize-gm
1995-10-27 17:48:36 +00:00
J.T. Conklin
2b57629364 * configure.in: Check for working mmap, ansi headers, string.h,
strings.h, and memory.h.
* configure: Regenerated.

* gdb_stat.h: New file, "portable" <sys/stat.h>.
* gdb_string.h: New file, "portable" <string.h>.

* altos-xdep.c, arm-tdep.c, arm-xdep.c, convex-tdep.c,
convex-xdep.c, coredep.c, cxux-nat.c, dbxread.c, exec.c,
gould-xdep.c, hppa-tdep.c, i386aix-nat.c, i386b-nat.c,
i386mach-nat.c, i386v-nat.c, infptrace.c, m88k-nat.c, main.c,
mdebugread.c, objfiles.c, os9kread.c, procfs.c, pyr-xdep.c,
rs6000-nat.c, source.c, standalone.c, stuff.c, sun386-nat.c,
symfile.c, symm-nat.c, symm-tdep.c, symtab.c, top.c, ultra3-nat.c,
ultra3-xdep.c, umax-xdep.c, xcoffread.c: Include "gdb_stat.h"
instead of <sys/stat.h>.

* alpha-tdep.c, breakpoint.c, buildsym.c, c-typeprint.c,
ch-typeprint.c, coffread.c, command.c, core-sol2.c, core-svr4.c,
core.c, corelow.c, cp-valprint.c, dbxread.c, dcache.c, demangle.c,
dpx2-nat.c, dstread.c, dwarfread.c, elfread.c, environ.c, eval.c,
exec.c, f-lang.c, f-typeprint.c, f-valprint.c, findvar.c,
fork-child.c, gdbtypes.c, hpread.c, i386-tdep.c, infcmd.c,
inflow.c, infptrace.c, infrun.c, irix5-nat.c, language.c,
m2-typeprint.c, main.c, mdebugread.c, minsyms.c, mipsread.c,
monitor.c, nlmread.c, objfiles.c, os9kread.c, osfsolib.c, parse.c,
printcmd.c, procfs.c, regex.c, remote-adapt.c, remote-arc.c,
remote-array.c, remote-bug.c, remote-e7000.c, remote-eb.c,
remote-es.c, remote-hms.c, remote-mm.c, remote-os9k.c,
remote-pa.c, remote-sim.c, remote-st.c, remote-udi.c,
remote-utils.c, remote-vx.c, remote-vx29k.c, remote-vx68.c,
remote-vx960.c, remote-vxmips.c, remote-vxsparc.c, remote.c,
solib.c, somread.c, source.c, stabsread.c, stack.c, symfile.c,
symmisc.c, symtab.c, target.c, top.c, typeprint.c, utils.c,
valarith.c, valops.c, valprint.c, values.c, xcoffread.c: Include
"gdb_string.h" instead of <string.h>.
* gdbtk.c: Likewise.

* config/xm-sysv4.h, i386/xm-ptx.h, m68k/xm-sun3os4.h,
sparc/xm-sun4os4.h (HAVE_MMAP): Removed.

* config/xm-lynx.h, config/i386/xm-ptx.h,
config/m68k/nm-apollo68b.h, config/m68k/xm-hp300hpux.h,
config/mips/xm-irix3.h, config/mips/xm-mips.h,
config/mips/xm-news-mips.h, config/mips/xm-riscos.h,
config/pa/hppah.h, config/rs6000/xm-rs6000.h,
config/sparc/xm-sun4os4.h, config/sparc/xm-sun4sol2.h,
config/vax/xm-vaxbsd.h, config/vax/xm-vaxult.h,
config/vax/xm-vaxult2.h (MEM_FNS_DECLARED): Removed.
* config/mips/xm-irix3.h, config/mips/xm-mips.h,
config/pa/xm-hppah.h (memcpy, memset): Removed declarations.
1995-08-01 20:14:27 +00:00
Jim Kingdon
e8bf33c4ac * breakpoint.c, target.h: Move defaults of watchpoint related
macros back to breakpoint.c.  Required to get GDB compiling
	on Solaris again.
1995-05-22 15:29:00 +00:00
Jeff Law
0f8cdd9ba4 * Allow up to 10 whitespace separated arguments to user defined
commands.
        * top.c (struct user_args): Structure for holding arguments to
        user defined commands.
        (print_command_line): Delete unused "tmp_chain" variable.  Clean
        up flow control by having cases exit in the same manner.
        Before executing a command or evaluating an expression, substitute
        the current $arg0..$arg9 values if the command/expression uses them.
        (arg_cleanup): New function.
        (setup_user_args, locate_arg, insert_args): Likewise.
        (execute_user_command): Allow arguments to user defined commands.

        * Allow if/while commands to be used within a breakpoint command
        list.
        * breakpoint.c (bpstat_do_actions): Call execute_control_command
        rather than execute_command (passes entire command structure rather
        than just the command line text).
        (breakpoint_1): Use "print_command_line" to print a breakpoint
        command line (including control structures).
        * gdbcmd.h (execute_control_command): Provide extern decl.
        (print_command_line): Likewise.
        * top.c (execute_control_command): No longer static.
        (print_command_line): New function to recursively print a command
        line, including control structures.
1994-12-30 19:53:39 +00:00
Jeff Law
706dc3ce33 * breakpoint.c (watchpoint_check): Don't bother restoring the
"selected" frame anymore, it's not necessary.  Initialize the
	frame cache before trying to find the current frame in the frame
	chain.
1994-12-27 21:52:00 +00:00
Jim Kingdon
16726dd15b The point of these changes is to avoid reading the frame pointer
and stack pointer during stepping, to speed things up.
	A.  Changes to not select a frame until we need a selected frame:
	    * blockframe.c (flush_cached_frames): Call select_frame (NULL, -1).
	    * infrun.c (wait_for_inferior): Move call to select_frame back to
	    normal_stop.  This reverts a change of 13 Apr 94 (it says Jeff
	    Law, but the change was my idea); the only reason for that change
	    was so we could save and restore the selected frame in
	    wait_for_inferior, and now that flush_cached frames clears the
	    selected frame, that should work OK now.
	B.  Changes to not create a current_frame until we need one:
	    * blockframe.c (get_current_frame): If current_frame is NULL, try
	    to create an innermost frame.
	    * sparc-tdep.c (sparc_pop_frame), infcmd.c (run-stack_dummy),
	    infrun.c (wait_for_inferior), thread.c (thread_switch),
	    convex-tdep.c (set_thread_command), a29k-tdep.c (pop_frame),
	    alpha-tdep.c (alpha_pop_frame), convex-xdep.c (core_file_command),
	    h8300-tdep.c (h8300_pop_frame), h8500-tdep.c (h8300_pop_frame),
	    hppa-tdep.c (hppa_pop_frame), i386-tdep.c (i386_pop_frame),
	    i960-tdep.c (pop_frame), m68k-tdep.c
	    (m68k_pop_frame), mips-tdep.c (mips_pop_frame), rs6000-tdep.c
	    (push_dummy_frame, pop_dummy_frame, pop_frame), sh-tdep.c
	    (pop_frame), config/arm/tm-arm.h (POP_FRAME),
	    config/convex/tm-convex.h (POP_FRAME), config/gould/tm-pn.h
	    (POP_FRAME), config/ns32k/tm-merlin.h (POP_FRAME),
	    config/ns32k/tm-umax.h (POP_FRAME), config/tahoe/tm-tahoe.h
	    (POP_FRAME), config/vax/tm-vax.h (POP_FRAME): Don't
	    call create_new_frame.
	    * corelow.c (core_open), altos-xdep.c (core_file_command),
	    arm-xdep.c (core_file_command), gould-xdep.c (core_file_command),
	    m3-nat.c (select_thread), sun386-nat.c (core_file_command),
	    umax-xdep.c (core_file_command): Don't call create_new_frame; do
	    call flush_cached_frames.
	    * blockframe.c (reinit_frame_cache): Don't call create_new_frame
	    or select_frame.
	C.  Changes to get rid of stop_frame_address and instead only
	fetch the frame pointer when we need it.
	    * breakpoint.c (bpstat_stop_status): Remove argument
	    frame_address; use FRAME_FP (get_current_frame ()).
	    * infrun.c (wait_for_inferior): Don't pass frame pointer to
	    bpstat_stop_status.
	    * infrun.c (wait_for_inferior): Use FRAME_FP (get_current_frame
	    ()) instead of stop_frame_address.
	    * infrun.c (save_inferior_status, restore_inferior_status),
	    inferior.h (struct inferior_status): Don't save and restore
	    stop_frame_address.
	    * inferior.h, infcmd.c, thread.c (thread_switch), m3-nat.c
	    (select_thread): Remove stop_frame_address and uses thereof.
	D.  Same thing for the stack pointer.
	    * infrun.c (wait_for_inferior): Remove stop_sp and replace
	    uses thereof with read_sp ().
	E.  Change to eliminate one nasty little spot where we were
	wanting to know the frame pointer from before the current step
	(idea from GDB 3.5, which saved my ass, because my other ideas of
	how to fix it were very baroque).
	    * infrun.c: Remove prev_frame_address.
	    * infrun.c (wait_for_inferior, step_over_function): Use
	    step_frame_address instead of prev_frame_address.
	F.  Same basic idea for the stack pointer.
	    * inferior.h, infcmd.c: New variable step_sp.
	    * infcmd.c (step_1, until_next_command): Set it.
	    * infrun.c: Remove prev_sp and replace uses by step_sp.
	    * infrun.c (wait_for_inferior): If we get out of the step
	    range, then set step_sp to the current stack pointer before we
	    start going again.
1994-10-08 03:41:21 +00:00
Jean Marie Diaz
d2a85f11be * breakpoint.c (mention), main.c (fputs_unfiltered): Add comments.
* breakpoint.c (delete_breakpoint, enable_breakpoint,
	disable_breakpoint): Don't call breakpoints_changed; it is now
	called via the *_breakpoint_hook functions.
	* annotate.c (_initialize_annotate, breakpoint_changed): New functions.
1994-08-02 00:44:24 +00:00
Stu Grossman
754e5da26e * Makefile.in (INSTALLED_LIBS, CLIBS, DEPFILES): Add support for
--enable-xxx configure option by adding ENABLE_{CLIBS DEPFILES}
	where appropriate.

	* General hackery to support alternate user-interface.
	* breakpoint.c (mention, delete_breakpoint, enable_breakpoint,
	disable_breakpoint):  Call hooks for alternate user-interface.
	* defs.h:  Add declarations for alternate user-interface hooks.
	* main.c (main):  Add --nw (and --nowindows) options to disable
	the GUI.
	* (near call to command_loop):  Call command_loop_hook if set.
	* (fputs_unfiltered):  Call fputs_unfiltered_hook if set.
	* stack.c:  Call print_frame_info_listing_hook if set.
	* top.c (gdb_init):  Initialize targets.c and utils.c prior to
	other files to make sure that calls to error and warning will
	work.  Call init_ui_hook after everything else.
	* utils.c (query):  Call query_hook if set.
	* (gdb_flush):  Call flush_hook if set.
	* Change _initialize_utils to initialize_utils cuz we don't use
	automatic initialization of utils.c anymore.

	* Support for TK GUI.
	* Makefile.in:  Add rule for gdbtk.o.
	* configure.in:  Add support for --enable-gdbtk.
	* gdbtk.c:  New file.  Contains support routines for TK interface.
	* gdbtk.tcl:  New file.  Implements GUI policy.

	* remote.c:  Get rid of #ifdef DONT_USE_REMOTE.  It's no longer
	necessary.
1994-07-28 22:07:02 +00:00
Stan Shebs
557f3a0e60 * breakpoint.c (ignore, condition): Move usage note into body of
help text, so first line can be one-line summary.
1994-07-23 22:01:44 +00:00
Stan Shebs
9f5772857f Breakpoint hit counts, from Bob Rusk (rrusk@mail.csd.harris.com).
* breakpoint.h (hit_count): New breakpoint field.
	* breakpoint.c (show_breakpoint_hit_counts): New variable.
	(clear_breakpoint_hit_counts): New function.
	(bpstat_stop_status): Increment the hit count.
	(breakpoint_1): Display the hit count.
	* infcmd.c (run_command): Reset breakpoint hit counts.
	* target.c (generic_mourn_inferior): Don't clear ignore counts if
	displaying hit counts.
1994-07-14 02:15:39 +00:00
Kung Hsu
f2d9c05802 Modified Files:
breakpoint.c ChangeLog

        * breakpoint.c: annotate changes lost at merge, put back in.
1994-06-14 23:22:44 +00:00
Kung Hsu
110548816a Modified Files:
breakpoint.c ChangeLog

        * breakpoint.c: fix a syntax error native cc does not like.
1994-06-11 01:09:25 +00:00
Jim Kingdon
20b3c1aae5 * breakpoint.c (breakpoint_1): Fix typo.
* annotate.c (annotate_field_end): Fix typo.

	* Makefile.in: Move annotate.o from COMMON_OBS to OBS.

	* Makefile.in (TSSTART): Remove; no longer used.
1994-05-18 00:59:15 +00:00
Jim Kingdon
1c95d7ab2e gcc -Wall lint:
* breakpoint.c (watchpoint_check): Remove unused variable b.
	* stack.c (print_frame_info): Move sp and buf inside #if.
	* eval.c (evaluate_subexp): Remove unused variables pp,
	mangle_ptr, ptr, and mangle_tstr.
	* valarith.c (value_x_binop): Remove unused variables mangle_tstr
	and mangle_ptr.
	* symtab.c (lookup_symtab): Put variable copy inside #if.
	(decode_line_1): Put variable q1 inside #if 0.
	* target.h: Declare target_link.
	* infrun.c (wait_for_inferior): Remove unused variables signame.
	* remote.c (remote_resume): Remove unused variable name.
	* c-exp.y (parse_number): Parenthesize operand of shift.
	* dbxread.c (record_minimal_symbol): Parenthesize operand of &&
	(this is a semantic change, the warning seems to have detected a bug).
	* dbxread.c (end_psymtab): Move variable p1 inside #if.
	* coffread.c: Move variable temptype inside #if.
	* ch-typeprint.c (chill_type_print_base): Remove unused variable
	name.
	* ch-valprint.c: #include typeprint.h and ch-lang.h.
	(chill_val_print): Remove unused variable in_range.
	(chill_val_print): Remove statement "length > TYPE_LENGTH (type);".
	(chill_val_print): Add default case for switch.
	* stabsread.h: Declare stabsect_build_psymtabs.
	* os9kread.c (read_minimal_symbols): Make this return void.
	(os9k_symfile_read): Remove unused variables stb_exist and val.
	(os9k_symfile_init): Remove unused variable val.
	(fill_sym): Remove unused variable id.
	(read_os9k_psymtab): Put variable back_to inside #if 0.  Remove
	unused variable nsl.
	Remove unused variable symfile_bfd.
	#if 0 unused variables lbrac_unmatched_complaint and
	lbrac_mismatch_complaint.
	Remove declaration for non-existent function os9k_next_symbol_text.

	* annotate.c, annotate.h: New files, containing a function for
	each annotation which outputs it.
	* Move breakpoints_changed from breakpoint.c to annotate.c.
	* breakpoint.c, blockframe.c, infrun.c, cp-valprint.c, main.c,
	printcmd.c, source.c, stack.c, utils.c, valprint.c:
	Use annotate.c functions to output annotations.
	* Makefile.in (OBS): Add annotate.o.
1994-05-13 18:18:57 +00:00
Jim Kingdon
d24c05991f * valprint.c (print_longest): Clarify comment about use_local.
* printcmd.c, defs.h (print_address_numeric), callers in
	symmisc.c, symfile.c, stack.c, source.c, remote.c, infcmd.c,
	cp-valprint.c, core.c, ch-valprint.c, c-valprint.c, breakpoint.c,
	exec.c: New argument use_local.
	* source.c (identify_source_line): Use filtered output.  Use
	print_address_numeric.
1994-05-04 15:24:41 +00:00
Jim Kingdon
47ebe8fd88 * breakpoint.c (breakpoint_1): Annotate each field of the headers.
Explicitly annotate each record.
1994-04-30 01:30:28 +00:00
Jim Kingdon
9e8db4456e * breakpoint.c (watch_command): Use (CORE_ADDR)0, not NULL, for
target null pointer.
	* blockframe.c (find_frame_addr_in_frame_chain): Likewise.

	* printcmd.c (output_command): Annotate things we print here too.
	* Move declaration of print_value_flags from defs.h to value.h.
	* main.c (command_line_input): Call wrap_here as well as gdb_flush.
1994-04-21 21:19:58 +00:00
Jim Kingdon
6c803036a9 * main.c (main): Accept --annotate=N option and make --fullname
the same as --annotate=1.
	(command_line_input): Print annotatation before and after prompt.
	* blockframe.c (flush_cached_frames): Print annotation.
	* Rename frame_file_full_name to annotation_level and move it from
	symtab.h to defs.h.
	* source.c (identify_source_line): If annotation_level > 1,
	change output format.
	* breakpoint.c: Print annotation whenever a breakpoint changes.
	* main.c: New variable server_command.
	(command_line_input): Parse "server " and set server_command.
	(dont_repeat): Check server_command.
1994-04-20 19:23:30 +00:00
Stan Shebs
fad466eb6d Fri Apr 15 11:53:46 1994 Stan Shebs (shebs@andros.cygnus.com)
* source.c (DIRNAME_SEPARATOR): New macro, replaces all references
	to : in search path processing.
	* defs.h (qsort): Rename argument in prototype.
	* symtab.h (SAYMBOL_VALUE): Rename value field, avoids bugs in
	some compilers.
	* breakpoint.c, exec.c, mdebugread.c, mipsread.c, xcoffexec.c
	(false): Eliminate usages.
1994-04-15 21:55:49 +00:00
Jeff Law
999dd04b89 * breakpoint.h (enum bptype): Add bp_hardware_watchpoint and
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.
1994-04-13 21:57:00 +00:00
Jeff Law
bd2f0c8543 * breakpoint.c (print_it_normal): Allow GDB to notify the user
about more than one watchpoint being triggered.
1994-03-30 17:17:01 +00:00
Jim Kingdon
c4de6b308e * breakpoint.c (_initialize_breakpoint): Update docstring for
tbreak to match what the code actually does.
1994-03-11 16:13:08 +00:00
Jim Kingdon
82a2edfbcf * breakpoint.c, breakpoint.h, c-valprint.c, ch-valprint.c,
cp-valprint.c, eval.c, expprint.c, findvar.c, language.c,
	objfiles.h, infcmd.c, printcmd.c, stack.c, typeprint.c,
	valarith.c, valops.c, valprint.c, value.h, values.c: Replace
	value with value_ptr.  This is for the ptx compiler.
	* objfiles.h, target.h: Don't declare a "sec_ptr" field using a
	"sec_ptr" typedef.
	* symm-nat.c: Add a bunch of stuff for symmetry's ptrace stuff.
	#if 0 i386_float_info.
	* symm-tdep.c (round): Remove.  Also remove sgttyb.
	* symm-tdep.c: Remove lots of stuff which duplicates stuff from
	i386-tdep.c.  Remove register_addr and ptx_coff_regno_to_gdb.
	* i386-tdep.c (i386_frame_find_saved_regs): Put in
	I386_REGNO_TO_SYMMETRY check in case it is needed for Dynix
	someday.
	* config/i386/nm-symmetry.h: Change KERNEL_U_ADDR.  Move
	stuff from PTRACE_READ_REGS, PTRACE_WRITE_REGS macros to
	symm-nat.c.  Define CHILD_WAIT and declare child_wait().
	* config/i386/tm-symmetry.h: Remove call function stuff; stuff in
	tm-i386v.h is apparently OK.
	* config/i386/xm-symmetry.h [_SEQUENT_]: Define HAVE_TERMIOS not
	HAVE_TERMIO.  Define MEM_FNS_DECLARED, NEED_POSIX_SETPGID, and
	USE_O_NOCTTY.
1994-03-03 01:00:57 +00:00
Jim Kingdon
bcc3771841 * breakpoint.h (enum bptype): New type bp_through_sigtramp.
(bpstat_what_main_action): New code BPSTAT_WHAT_THROUGH_SIGTRAMP.
	* breakpoint.c (bpstat_what): Return BPSTAT_WHAT_THROUGH_SIGTRAMP
	if we hit a bp_through_sigtramp breakpoint.  Remove kludge which
	ignored bs->stop for a bp_step_resume breakpoint.
	* infrun.c (wait_for_inferior): Make a through_sigtramp_breakpoint
	which performs one (the check_sigtramp2 one) of the functions
	which had been handled by the step_resume_breakpoint.  For each
	use of the step_resume_breakpoint, make it still use the
	step_resume_breakpoint, use the through_sigtramp_breakpoint, or
	operate on both.
	Deal with BPSTAT_WHAT_THROUGH_SIGTRAMP return from bpstat_what.
	When setting the frame address of the step resume breakpoint, set
	it to the address for frame *before* the call instruction is
	executed, not after.
1994-02-25 09:12:29 +00:00
Jim Kingdon
833e0d94cc Fix many sins which will come up in 32 bit x 64 bit GDB, and
various miscellaneous things discovered in the process:
	* printcmd.c, defs.h (print_address_numeric): New function.
	* c-valprint.c (c_val_print), ch-valprint.c (chill_val_print)
	breakpoint.c (describe_other_breakpoints, breakpoint_1, mention),
	cp-valprint.c (cplus_print_value), infcmd.c (jump_command),
	printcmd.c, stack.c, symfile.c, symmisc.c, valprint.c:
	Use it.
	* utils.c, defs.h (gdb_print_address): New function.
	* expprint (dump_expression), gdbtypes.h: Use it.
	* breakpoint.c (describe_other_breakpoints),
	symmisc.c (dump_symtab, print_symbol):
	Use filtered not unfiltered I/O.
	(remove_breakpoints): Remove BREAKPOINT_DEBUG code.  Might as well
	just run gdb under a debugger for this (and it had problems with
	printing addresses, how to print b->shadow, etc.).
	* buildsym.c (make_blockvector), core.c (memory_error),
	exec.c (print_section_info), maint.c (print_section_table),
	mdebugread.c (parse_procedure), solib.c, source.c, symfile.c,
	symmisc.c, symtab.c, valops.c, valprint.c, xcoffexec.c:
	Add comments saying code is broken.  Marked with "FIXME-32x64".
	* dbxread.c (process_one_symbol), partial-stab.h (default),
	remote-vx.c (vx_run_files_info):
	Don't cast int being passed to local_hex_string.
	* symmisc.c (print_symbol): Don't cast long being passed to %lx.
	* symtab.h (general_symbol_info): Add comment about SYMBOL_VALUE
	only being a long.
	* symmisc.c (print_symbol): Print "offset" in message for LOC_ARG
	and LOC_LOCAL.
	* printcmd.c (print_address): Remove #if 0 code with ADDR_BITS_REMOVE.
	* source.c: Include <sys/types.h> regardless of USG.
1994-01-27 00:36:05 +00:00
Jim Kingdon
d7e7e85159 * infrun.c (wait_for_inferior): Don't set frame for
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.
1994-01-19 21:14:40 +00:00
Jim Kingdon
05052b638c * breakpoint.c (breakpoint_chain): Make static.
* breakpoint.c, breakpoint.h (frame_in_dummy): New function.
	* stack.c (print_frame_info): Use it.
1993-12-30 20:34:06 +00:00
Thomas Lord
199b2450f6 Change the stream argument to _filtered to GDB_FILE *.
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.
1993-11-01 22:25:23 +00:00
Jim Kingdon
cf3e377e61 * breakpoint.c, breakpoint.h (breakpoint_init_inferior): New function
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.
1993-10-07 11:16:35 +00:00
Jim Kingdon
ebad9e902c * breakpoint.c (delete_breakpoint): Don't insert a disabled breakpoint. 1993-10-06 18:01:06 +00:00
Peter Schauer
cef4c2e7a5 Changes to support alpha OSF/1 in native mode.
* 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.
1993-10-05 19:44:57 +00:00
Jim Kingdon
cb6b02027c * breakpoint.h, breakpoint.c (bpstat_stop_status): Add new argument
not_a_breakpoint.
	* infrun.c (wait_for_inferior): Pass it.  Also consolidate the
	test of whether we are stepping into a CURRENTLY_STEPPING macro.
1993-09-22 01:16:50 +00:00
K. Richard Pixley
817ac7f82b * breakpoint.c (bpstat_stop_status),
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.
1993-09-22 00:43:55 +00:00
Jim Kingdon
bb7b38008e * breakpoint.c (breakpoint_1): Support bp_call_dummy. 1993-09-21 22:55:39 +00:00
Jim Kingdon
84d598611e * defs.h (make_cleanup): Change PTR to void * when inside PARAMS.
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.
1993-09-18 19:15:36 +00:00
K. Richard Pixley
fee933f19c gcc lint 1993-09-08 21:30:33 +00:00
Jim Kingdon
d889f6b7c7 * breakpoint.{c,h} (struct breakpoint): Replace symtab field with
source_file field.
1993-07-26 05:26:55 +00:00
Jim Kingdon
5af4f5f6f1 Tue Jul 13 14:03:48 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
* 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.
1993-07-14 15:12:05 +00:00
Jim Kingdon
f1ed43304a * symtab.c (decode_line_1): Use end of block to figure out whether
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.
1993-07-12 03:42:35 +00:00
Jim Kingdon
fe67503857 * infrun.c: Remove step_resume_{duplicate,shadow}. Replace
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.
1993-07-11 04:52:50 +00:00
Jim Kingdon
fa99ebe19f * breakpoint.c: Add comments regarding within_scope future direction. 1993-04-15 01:45:35 +00:00
Jim Kingdon
0a62ff3608 (breakpoint_1): use wrap_here before "at" 1993-04-12 17:56:35 +00:00