Commit graph

223 commits

Author SHA1 Message Date
Andrew Cagney
9dc5e2a936 Replace:
if (interpreter_p && strncmp (interpreter_p, "mi", 2) == 0)
with:
  if (ui_out_is_mi_like_p (uiout))
2001-07-06 03:53:11 +00:00
Andrew Cagney
100a02e1de From Fernando Nasser:
* infrun.c (handle_inferior_event): Handle "nexti" inside function
prologues.
2001-06-28 21:48:41 +00:00
Michael Snyder
80b34fabd3 2001-06-28 Michael Snyder <msnyder@redhat.com>
* infrun.c (handle_inferior_event): Replace prev_pc test in all
	calls to bpstat_stop_status (removed in 1999-09-24).  This test
	helps distinguish stepping over a breakpoint trap from stepping
	thru a jump to the instruction after a breakpoint trap.
	(handle_inferior_event): Don't bother writing the PC if
	DECR_PC_AFTER_BREAK is zero (optimization).
	* breakpoint.c (bpstat_stop_status): Add comment explaining the
	purpose and usage of the "not_a_breakpoint" argument in computing
	the breakpoint address.
2001-06-28 21:34:03 +00:00
Michael Snyder
ef5cf84e21 2001-06-25 Michael Snyder <msnyder@redhat.com>
* infrun.c: Eliminate the "thread_step_needed" state variable,
	and replace it with a relatively simple test in resume.
	(resume): Replace thread_step_needed logic with a test for
	stepping, breakpoint_here_p and breakpoints_inserted.
	Move CANNOT_STEP_BREAKPOINT logic to after thread_step logic.
	(proceed): Discard thread_step_needed logic.
	(wait_for_inferior, fetch_inferior_event, handle_inferior_event):
	Discard thread_step_needed logic.
2001-06-26 00:26:42 +00:00
Andrew Cagney
b30bf9ee99 Recognize -i=mi0, -i=mi1 and -i=mi. 2001-06-18 17:57:43 +00:00
Michael Snyder
dd80620e6b 2001-06-15 Michael Snyder <msnyder@redhat.com>
* infrun.c (context_switch): New function.  Abstract the operation
	of saving and restoring infrun's state when switching threads.
	(handle_inferior_event): Normalize the handling of the 'thread hop'
	event (when the wrong thread hits a thread-specific breakpoint,
	and we need to solo-step that thread past the breakpoint).
	Call keep_going, instead of target_resume.  Handle the subsequent
	singlestep-trap as a normal event instead of just resuming.
2001-06-15 22:44:20 +00:00
Michael Snyder
6c0d3f6a03 2001-06-13 Michael Snyder <msnyder@redhat.com>
* gdbthread.h (struct thread_info): Add new fields:
        current_line, current_symtab, step_sp, for saved infrun state.
        * thread.c (save_infrun_state, load_infrun_state): Save and
        restore current_line, current_symtab, and step_sp.
        (add_thread): Rather than adding assignments to initialize
	the new fields, just use memset (tp, 0, sizeof (*tp).
	This way future new fields will not be overlooked.
        * infrun.c (handle_inferior_event): Save and restore save_sp,
        current_line, and current_symtab when switching threads.
2001-06-13 22:56:16 +00:00
Michael Snyder
8601f500c8 2001-06-01 Michael Snyder <msnyder@redhat.com>
* thread.c (delete_step_resume_breakpoint): New function.
	Maintain internal consistency of the thread list while deleting
	a step_resume_breakpoint.
	* gdbthread.h (delete_step_resume_breakpoint): Export.
	* breakpoint.c (bpstat_find_step_resume_breakpoint):
	Make thread-aware: don't return a step_resume_breakpoint
	for the wrong thread.
	* infrun.c (wait_for_inferior): Call delete_step_resume_breakpoint
	instead of delete_breakpoint_current_contents.
	(fetch_inferior_event): Ditto.
	(handle_inferior_event): Call delete_step_resume_breakpoint
	instead of delete_breakpoint.
2001-06-02 00:36:20 +00:00
Michael Snyder
c6ad9598d0 2001-06-01 Michael Snyder <msnyder@redhat.com>
* infrun.c (handle_inferior_event): After singlestepping over a
	thread-specific breakpoint, use currently_stepping() to decide
	whether to step or continue.
2001-06-01 23:23:19 +00:00
Kevin Buettner
ca6724c16a Redefine ptid_t to be a struct rather than an int. 2001-05-15 00:03:38 +00:00
Kevin Buettner
ce696e0556 Consolidate save_inferior_ptid/restore_inferior_ptid implementation to
one source file.
2001-05-06 22:22:03 +00:00
Kevin Buettner
39f770628a Phase 1 of the ptid_t changes. 2001-05-04 04:15:33 +00:00
David Smith
e02bc4cc30 2001-04-06 David Smith <dsmith@redhat.com>
* arch-utils.c (default_prepare_to_proceed)
	(generic_prepare_to_proceed): Added new functions.
	* arch-utils.h: New function declarations for
	default_prepare_to_proceed() and generic_prepare_to_proceed().
	* gdbarch.sh: Added PREPARE_TO_PROCEED.
	* gdbarch.c: Regenerated.
	* gdbarch.h: Regenerated.
	* inferior.h: Added get_last_target_status() declaration.
	* infrun.c (get_last_target_status): Added new function.
	(handle_inferior_event): Saves last pid and waitstatus, which will
	get returned by get_last_target_status().

	* hppa-tdep.c (prepare_to_proceed):  Added comment stating that
	prepare_to_proceed() is potentially redundant since
	default_prepare_to_proceed() has been added.
	* linux-thread.c (prepare_to_proceed): Ditto.
	* lin-lwp.c (prepare_to_proceed): Ditto.
	* m3-nat.c (prepare_to_proceed): Ditto.
2001-04-06 17:53:39 +00:00
Andrew Cagney
8866554466 -Wuninitialized fixes. 2001-03-22 23:58:37 +00:00
Andrew Cagney
b0ed35899a Change SOFTWARE_SINGLE_STEP_P into SOFTWARE_SINGLE_STEP_P(). 2001-03-20 18:16:28 +00:00
Kevin Buettner
b6ba6518e9 Update/correct copyright notices. 2001-03-06 08:22:02 +00:00
Andrew Cagney
4e052eda91 Create new file regcache.h. Update all uses. 2001-03-01 01:39:22 +00:00
Andrew Cagney
8e65ff28b0 Add __FILE__ and __LINE__ parameter to internal_error() /
internal_verror().
2001-02-08 06:03:54 +00:00
Fernando Nasser
1adeb98a32 2001-01-26 Fernando Nasser <fnasser@redhat.com>
Fix double parsing of filenames passed as command line arguments
        to GDB (causes weird handling of escape characters).
        Also, remove dependencies on the CLI from libgdb.
        * call-cmds.h: Remove declaration of exec_file_command().
        * gdbcore.h: Remove declaration of exec_file_command().
        Add declarations for exec_open() and exec_file_clear().
        * symfile.h: Add declarations for symbol_file_add_main() and
        symbol_file_clear().
        * exec.c (exec_open): New function. Implements to_open for exec
        targets.
        (exec_file_clear): New function. Makes GDB forget about a previously
        specified executable file.
        (exec_file_attach): Move parsing of arguments from here ...
        (exec_file_command): ... to here.
        (init_exec_ops): Use exec_open(), not exec_file_command() to
        implement to_open for exec targets.
        * symfile.c (symbol_file_add_main): New function. Call symbol_file_add()        with default values.  Used when the file name has already been parsed.
        (symbol_file_clear): New function. Makes GDB forget about previously
        read symbols.
        (symbol_file_command): Call the above function instead of inline code.
        * main.c: Include "symfile.h" and "gdbcore.h" instead of the deprecated
        "call-cmds.h".
        (captured_main): Call exec_file_attach() and symbol_file_add_main()
        instead of exec_file_command() and symbol_file_command().
        (captured_main): Add comment.
        * corefile.c: Include "symfile.h".
        (core_file_command): Call symbol_file_add_main() instead of
        symbol_file_command().
        (reopen_exec_file): Call exec_open() instead of exec_file_command().
        * infcmd.c: Include "symfile.h".
        (attach_command): Call symbol_file_add_main() instead of
        symbol_file_command().
        * infrun.c: Remove comment about the inclusion of "symfile.h",
        not any longer appropriate.
        (follow_exec): Call symbol_file_add_main() instead of
        symbol_file_command().
        * remote-es.c: Include "symfile.h".
        (es1800_load): Call symbol_file_add_main() instead of
        symbol_file_command().
        * remote-vx.c: Remove comment about the inclusion of "symfile.h",
        not any longer appropriate.
        (vx-wait): Call symbol_file_add_main() instead of
        symbol_file_command().
        * solib-svr4.c (open_symbol_file_object): Call symbol_file_add_main()
        instead of symbol_file_command().
        * v850ice.c (ice_file): Call exec_open(), exec_file_attach() and
        symbol_file_add_main() instead of exec_file_command() and
        symbol_file_command().
        * Makefile.in: Update dependencies.
2001-01-27 00:43:26 +00:00
Kevin Buettner
b8c9b27d1e Replace free() with xfree(). 2000-12-15 01:01:51 +00:00
Christopher Faylor
5fbbeb2988 * inferior.h (step_over_calls_kind): New enum to clarify values in
step_over_calls.
* infcmd.c (step_over_calls): Change definition.
(step_1): Use new enum values in relation to step_over_calls.
(step_once): Ditto.
(until_next_command): Ditto.
* infrun.c (clear_proceed_status): Ditto.
(handle_inferior_event): Ditto.
* inferior.h (step_stop_if_no_debug): New variable.
* infrun.c (step_stop_if_no_debug): Declare.
(handle_inferior_event): Stop the step command if we entered a function without
line info.
(_initialize_infrun): New command 'set step-mode' to control the step command.
* infcmd.c (step_once): Switch to stepi mode if there is no line info
(and switching is enabled).
2000-11-10 19:27:45 +00:00
Fernando Nasser
73bc900df9 2000-11-06 Fernando Nasser <fnasser@cygnus.com>
From  Steven Johnson  <sbjohnson@ozemail.com.au>:

        This set of changes add "hookpost-" as an expansion on the original
        hooking of commands to GDB. A Hook may now be run "AFTER" execution of
        a command as well as before.

        * command.h (struct cmd_list_element): Changed elements hook and hookee
        to hook_pre and hookee_pre respectively. Added hook_post and hookee_post
        for the post hook command operation. Added hook_in so that an executing
        hook can be flagged to prevent recursion.
        * command.c (add_cmd): Changed initilization of cmd_list_element to
        reflect above changes.
        (delete_cmd): Remove both pre and post hooks.
        (help_cmd): Notify that the command has pre and/or post hooks.
        * infrun.c (normal_stop): Change references to hook_pre from hook.
        * top.c (execute_command): Run both pre and post hooks.
        (define_command): Allow definition of both pre and post hooks.
        The definition of pre-hooks is done as before, with the "hook-"
        prefix for backward compatibility.
2000-11-06 22:44:34 +00:00
David Taylor
bb518678ac * eval.c (parse_and_eval_long): New function.
* value.h: Declare it.

	* breakpoint.c (breakpoints_info, maintenance_info_breakpoints):
	Call parse_and_eval_long, not parse_and_eval_address.
	* command.c (do_setshow_command): Ditto.
	* infcmd.c (step_1, signal_command, continue_command): Ditto.
	* infrun.c (signals_info): Ditto.
	* stack.c (set_backtrace_limit_command, backtrace_command_1,
	up_silently_base, down_silently_base): Ditto.
	* tracepoints.c (tracepoints_info, trace_find_command,
 	trace_find_tracepoint_command): Ditto.
	* valprint.c (set_radix): Ditto.
	* values.c (show_values): Ditto.
2000-10-30 15:32:51 +00:00
David Anderson
7e73cedf75 Corrected spelling errors in comments.
gdbarch.{c,sh} removed a word from a comment.
2000-10-27 15:02:42 +00:00
David Anderson
3cbb88dcd1 Corrected spelling in comment: unles -> unless. 2000-09-02 00:08:05 +00:00
Kevin Buettner
fba45db2fa Protoization. 2000-07-30 01:48:28 +00:00
Andrew Cagney
e28d556f6b Botch in previous change. Was comparing against "ask" instead of
follow_fork_mode_ask.
2000-06-08 01:52:44 +00:00
Andrew Cagney
53904c9e67 Change signature of function add_set_enum_cmd() so that it uses
constant character pointers.  Update everything.
As a consequence fix infrun's follow-fork plugging a small memory leak.
2000-06-08 00:52:56 +00:00
Andrew Cagney
74b7792f0f Purge (almost) make_cleanup_func. 2000-05-22 09:02:23 +00:00
Andrew Cagney
1ed2a1352d Fix signature of add_set_enum_cmd. Change VAR parameter to char**.
Cleanup signature of add_set_cmd.  Change VAR parameter to void*.
2000-05-16 03:03:13 +00:00
Mark Kettenis
e441088d68 * infrun.c (handle_inferior_event): Add missing call to keep_going
and missing return when handling an ordinary signal from the
inferior.
2000-05-04 17:32:49 +00:00
Mark Kettenis
d41707c868 * infrun.c (handle_inferior_event): When doing a "next", and
stepping out of a signal handler into its calling trampoline
ignore the value of step_frame_address.
(step_over_function): Only modify step_resume_breakpoint->frame if
the value of step_frame_address is non-zero.
2000-05-03 20:16:05 +00:00
Andrew Cagney
d7446e7568 revert 1.9. Not approved. 2000-05-02 08:59:35 +00:00
Andrew Cagney
33489c5bed re-do how gdbarch provides non-multi arch defaults so that non-
multi-arch gdbservers can continue to compile.
2000-05-02 08:57:21 +00:00
Andrew Cagney
ef346e0411 Append NULL to enum based commands follow-fork and scheduler-locking. 2000-04-20 11:00:34 +00:00
Eli Zaretskii
010a3cd955 * infrun.c (proceed, normal_stop): Change the error message about
failure to insert breakpoints/watchpoints so that it makes sense
	even if ptrace is not used or no other processes can be active.
2000-04-13 10:22:22 +00:00
Nicholas Duffek
c7e79b4bee * infrun.c (handle_inferior_event): Call target_mourn_inferior
instead of kill_target.
2000-04-05 02:26:37 +00:00
Michael Snyder
692590c19f 2000-03-28 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
breakpoint.c, breakpoint.h (remove_hw_watchpoints):  New function.
        infrun.c (resume):  Remove hardware watchpoints before stepping
        when CANNOT_STEP_HW_WATCHPOINTS is nonzero.
2000-03-28 22:30:19 +00:00
Andrew Cagney
d082b2bb92 Add more checks for no stack frame. 2000-02-29 07:17:15 +00:00
Andrew Cagney
fb40c20903 Add mi/ and testsuite/gdb.mi/ subdirectories.
Add --enable-gdbmi option to configury.
Add mi rules to Makefile.in
Add mi conditional output to event-top.c infrun.c main.c top.c.
Add -i=mi option.
2000-02-23 00:25:43 +00:00
Andrew Cagney
03f2053f96 Replace ../include/wait.h with gdb_wait.h. 2000-02-09 08:52:47 +00:00
Jason Molenda
dfcd3bfb6f import gdb-2000-02-04 snapshot 2000-02-05 07:30:26 +00:00
Jason Molenda
8b93c6380e import gdb-2000-02-02 snapshot 2000-02-03 04:14:45 +00:00
Jason Molenda
c5394b80ae import gdb-2000-01-17 snapshot 2000-01-18 00:55:13 +00:00
Jason Molenda
c3f6f71df3 import gdb-2000-01-05 snapshot 2000-01-06 03:07:20 +00:00
Jason Molenda
c4093a6ab3 import gdb-1999-12-13 snapshot 1999-12-14 01:06:04 +00:00
Jason Molenda
c2d11a7da0 import gdb-1999-12-06 snapshot 1999-12-07 03:56:43 +00:00
Jason Molenda
11cf874164 import gdb-1999-11-08 snapshot 1999-11-09 01:23:30 +00:00
Jason Molenda
917317f4c6 import gdb-1999-10-18 snapshot 1999-10-19 02:47:02 +00:00
Jason Molenda
2acceee218 import gdb-1999-10-04 snapshot 1999-10-05 23:13:56 +00:00
Jason Molenda
6426a772a2 import gdb-1999-09-28 snapshot 1999-09-28 21:55:21 +00:00
Jason Molenda
c2c6d25f0d import gdb-1999-09-21 1999-09-22 03:28:34 +00:00
Stan Shebs
d4f3574e77 import gdb-1999-09-08 snapshot 1999-09-09 00:02:17 +00:00
Jason Molenda
104c1213b4 import gdb-1999-08-30 snapshot 1999-08-31 01:14:27 +00:00
Jason Molenda
53a5351d90 import gdb-1999-08-23 snapshot 1999-08-23 22:40:00 +00:00
Jason Molenda
7be570e7ce import gdb-1999-08-16 snapshot 1999-08-16 19:57:19 +00:00
Jason Molenda
96baa820df import gdb-1999-08-09 snapshot 1999-08-09 21:36:23 +00:00
Jason Molenda
a0b3c4fd32 import gdb-1999-08-02 snapshot 1999-08-02 23:48:37 +00:00
Jason Molenda
adf40b2e16 import gdb-1999-07-19 snapshot 1999-07-19 23:30:11 +00:00
Jason Molenda
c5aa993b1f import gdb-1999-07-07 post reformat 1999-07-07 20:19:36 +00:00
Jason Molenda
43ff13b418 import gdb-1999-07-05 snapshot 1999-07-05 17:58:44 +00:00
Jason Molenda
0f71a2f66f import gdb-1999-06-14 snapshot 1999-06-14 18:08:47 +00:00
Jason Molenda
392a587b05 import gdb-1999-05-25 snapshot 1999-05-25 18:09:09 +00:00
Jason Molenda
9e086581c7 import gdb-1999-0519 1999-05-19 19:58:41 +00:00
Stan Shebs
cd0fc7c3eb import gdb-1999-05-10 1999-05-11 13:35:55 +00:00
Stan Shebs
b83266a0e1 import gdb-19990504 snapshot 1999-05-05 14:45:51 +00:00
Stan Shebs
7a292a7adf import gdb-19990422 snapshot 1999-04-26 18:34:20 +00:00
Stan Shebs
c906108c21 Initial creation of sourceware repository 1999-04-16 01:35:26 +00:00
Stan Shebs
071ea11e85 Initial creation of sourceware repository 1999-04-16 01:34:07 +00:00
Elena Zannoni
fbd641cbd3 Fri Jan 29 12:57:34 1999 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
* infrun.c (_initialize_infrun): do not stop or print anything
	when a SIGWINCH is received.
1999-01-29 18:29:12 +00:00
Michael Snyder
3ab2abae9a Wed Jan 13 14:59:02 1999 Michael Snyder <msnyder@cleaver.cygnus.com>
* infrun.c (set/show scheduler-locking) New command.  Set a
          mode bit that will control how GDB attempts to control thread
          scheduling for step, continue, etc.  (resume): make use of
          the schedule-locking mode.
        * target.h (struct target_ops): new field to_has_thread_control.
        * sol-thread.c: initialize target_ops to_has_thread_control.
        * procfs.c: ditto.
        * target.c: ditto.
        * m3-nat.c: ditto.
        * remote.c: ditto.
        * hpux-thread.c: ditto.
1999-01-13 23:53:30 +00:00
Michael Snyder
1f205f9d6e cosmetic fixups, mainly long lines. 1999-01-06 03:06:20 +00:00
David Taylor
65b07ddca8 all remaining *.c *.h files from hp merge. 1998-12-31 21:58:30 +00:00
Andrew Cagney
0233186932 CARP:
STEP_SKIPS_DELAY - add STEP_SKIPS_DELAY_P and rewrite use removing
  #ifdef's.
NO_SINGLE_STEP - replace with SOFTWARE_SINGLE_STEP_P +
  SOFTWARE_SINGLE_STEP.  Replace global variable one_stepped with static
  singlestep_breakpoints_inserted_p.  Cleanup infrun.c (scary!).
1998-11-27 23:35:08 +00:00
Jason Molenda
f0fce3b80b Fri Apr 10 22:36:28 1998 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
Update support for x86 Solaris 2.
        * config/i386/tm-i386sol2.h, nm-i386sol2.h:  New configuration
        files for x86 Solaris 2.
        * config/i386/i386sol2.mt, i386sol2.mh:  Use them.
        * config/sparc/tm-sun4sol2.h (PROCFS_GET_CARRY):  New macro, extract
        carry flag from a given regset.
        (IS_STATIC_TRANSFORM_NAME):  New macro, check if a symbol name
        is a SunPro transformed name.
        * i386-tdep.c (sunpro_static_transform_name):  New function to
        extract the source name from a SunPro transformed name.
        * inferior.h (procfs_first_available, procfs_get_pid_fd):
        Add prototypes.
        * infrun.c (wait_for_inferior):  Handle breakpoint hit in
        signal handler without intervening stop in sigtramp.
        * procfs.c (procfs_lwp_creation_handler):  Use PROCFS_GET_CARRY
        instead of direct access to the status register.
        (procfs_get_pid_fd):  New function, returns procfs fd for a given pid.
        * sol-thread.c (ps_lgetLDT):  New function, returns LDT for a given
        lwpid.
        (sol_find_new_threads):  Handle failed libthread_db initialization
        gracefully.
        * stabsread.c (define_symbol):  Use IS_STATIC_TRANSFORM_NAME
        to check for a SunPro transformed symbol name.
1998-04-11 05:43:33 +00:00
Dawn Perchik
24a385253d * infrun.c: Fix prototype of signals_info to match static funtion. 1998-04-04 18:06:55 +00:00
Mark Alexander
4eb4b87e13 * mips-tdep.c (mips_in_call_stub, mips_in_return_stub,
mips_skip_stub, mips_ignore_helper): New functions for dealing
	with MIPS16 call/return thunks.
	(mips_init_frame_pc_first): New function to implement
	INIT_FRAME_PC_FIRST macro; includes code from old macro plus
	new code to skip over MIPS16 thunks.
	(mips_frame_chain): Skip over MIPS16 thunks.
	* config/mips/tm-mips.h (mips_in_call_stub, mips_in_return_stub,
	mips_skip_stub, mips_ignore_helper): Declare.
	(IN_SOLIB_CALL_TRAMPOLINE, IN_SOLIB_RETURN_TRAMPOLINE,
	SKIP_TRAMPOLINE_CODE, IGNORE_HELPER_CALL): New macros that invoke
	the above functions.
	(INIT_FRAME_PC_FIRST): Change to invoke mips_init_frame_pc.
	(mips_init_frame_pc): Declare.
	* infrun.c (wait_for_inferior): Use new IGNORE_HELPER_CALL macro
	to decide if certain library function calls should be ignored.
1997-04-03 19:43:39 +00:00
Fred Fish
b607efe714 See gdb ChangeLog entry with header:
Thu Jul 25 19:41:31 1996  Fred Fish  <fnf@cygnus.com>

for a rather huge set of changes.  I was going to put them here, but it
made cvs dump core.  :-(
1996-07-26 03:01:51 +00:00
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
Stu Grossman
8fc2b4170d * fork-child.c (fork_inferior), inferior.h: init_trace_fun now
returns a possibly modified pid.
	* inftarg.c (ptrace_him):  Now returns pid;
	* m3-nat.c (m3_trace_him):  Now returns pid;
	* infcmd.c (run_command):  Minor cleanup.
	* infrun.c (wait_for_inferior):  Add another check for one_stepped
	near where we read the pc to avoid erroneously setting
	random_signal for multi-threaded support.
	* procfs.c:  Add support for Solaris LWPs.  Remove def of
	LOSING_POLL.  Many cleanups...  Several workarounds for Solaris
	lossage.  System call entry and exit are now handled by
	dynamically registered handlers.
	* (syscallname):  Don't barf when handed an unknown syscall
	number.
	* (info_proc_syscalls):  Ditto.
	* sol-thread.c:  New file.  Implements Solaris thread support.
	* symfile.c (symbol_file_add):  Add call to target_new_objfile to
	notify target-dependent code about new symbol tables.
	* (clear_symtab_users):  Call target_new_objfile to notify it of
	the removal of all symbol tables.
	* target.c (push_target):  Make sure that to_close is non-zero
	before calling it.
	* target.h (target_new_objfile):  Provide default.
	* config/alpha/nm-osf2.h:  Define LOSING_POLL because this version
	of OSF can't hack using poll with /proc.
	* config/sparc/nm-sun4sol2.h (target_new_objfile):  Define to be
	sol-thread-new-objfile.
	* config/sparc/sun4sol2.mh:  Add sol-thread.o to NATDEFFILES, and
	add libthread_db.so.1 to NAT_CLIBS.
	* config/sparc/tm-sun4sol2.h:  Define PIDGET, TIDGET, and
	target_pid_to_str.
1996-05-06 21:27:37 +00:00
Jeff Law
e6e4560d78 Remove some #if 0 code which creeped into wait_for_inferior during
my previous change.
1996-04-28 03:35:58 +00:00
Jeff Law
7dbb5eed30 * infrun.c (wait_for_inferior): Call registers_changed when
restarting the inferior to get over a nullified instructions.
Fixes PA testsuite regressions.
1996-04-27 05:56:07 +00:00
Jeff Law
894d8e6946 * infrun.c (wait_for_inferior): Move "have_waited" label
outside of #ifdef conditionals.  Don't trash the wait status
        if we get a signal and the current instruction is nullified.
Fixes long standing problem on the PA (spurious SIGTRAPs)..
1996-04-24 06:36:10 +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
11be829fa1 * From Peter Schauer:
* infrun.c (wait_for_inferior): Remove breakpoints and
        switch terminal settings before calling SOLIB_ADD.
        * solib.c (enable_break, SVR4 variant): Don't map in symbols
        for the dynamic linker, the namespace pollution causes real
        problems.
1996-03-04 21:50:10 +00:00
Jeff Law
87273c713f * symfile.c (auto_solib_add): Renamed from auto_solib_add_at_startup.
All references changed.
        * breakpoint.c (bpstat_what): Add shlib_event to the class types.
        Update state table.  Reformat so that it's still readable.
        When we hit the shlib_event breakpoint, set the calss of shlib_event.
        (breakpoint_1): Add "shlib events" as a breakpoint type.
        Print the shlib_event breakpoint like other breakpoints.
        (create_solib_event_breakpoint): New function.
        (breakpoint_re_set_one): Handle solib_event breakpoints.
        * breakpoint.h (enum bytype): Add bp_shlib_event breakpoint type.
        (enum bpstat_what_main_action): Add BPSTAT_WHAT_CHECK_SHLIBS
        action.
        (create_solib_event_breakpoint): Declare.
        * infrun.c (wait_for_inferior): Handle CHECK_SHLIBS bpstat.
        (normal_stop): Inform the user when the inferior stoped due
        to a shared library event.
        (_initialize_infrun): Add new set/show variable "stop_on-solib-events"
        to control whether or not gdb continues the inferior or stops it when
        a shared library event occurs.
        * minsyms.c (lookup_minimal_symbol_solib_trampoline): New function.
        * somsolib.c (TODO list): Update.
        (som_solib_create_inferior_hook): Arrange for gdb to be notified
        when significant shared library events occur.
        * hppa-tdep.c (find_unwind_entry): No longer static.
First cut at the machine independent changes for 7363.  Also includes
code to automatically track shl_load/shl_unload calls on hpux.
1996-01-23 21:06:34 +00:00
Stu Grossman
3f687c7896 * infrun.c (wait_for_inferior): Disable questionable code near
the step range test.  Replace call detection test with much
	simpler (and more efficient) test that doesn't require prologue
	examination (as often).
	* symtab.c symtab.h (in_prologue):  New function that indicates
	whether or not we are in a function prologue.  This uses the
	symbol table, and then falls back to prologue examination if that
	fails.  It's much more efficient for remote debugging because it
	avoids examining memory, which is very slow.  This is used in
	wait_for_inferior to determine if we've made a function call that
	needs to be skipped over (for next/nexti).
	* mips-tdep.c (after_prologue):  New function, returns the PC
	after the prologue.  Uses PDRs and the symbol table.
	(mips_find_saved_regs):  Use in_prologue() to avoid costly
	prologue examination if possible.
	(mips_skip_prologue):  Use after_prologue() if possible to avoid
	costly prologue examination.
1995-10-24 21:22:56 +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
Jeff Law
48f4903f36 * infrun.c (wait_for_inferior): When we hit a breakpoint for the
wrong thread, make sure to write the fixed PC value into the thread
        that stopped.  Restart all threads after single stepping over a
        breakpoint for a different thread.
        * breakpoint.c (set_momentary_breakpoint): Make momentary
        breakpoints thread specific in a multi-threaded program.
        * lynx-nat.c (child_resume): Add some comments.  Correctly
        choose between the single and multi-threaded step and continue
        ptrace calls.

Some of the lynx-6100 single stepping fixes.
1995-07-04 17:40:41 +00:00
Stu Grossman
c66ed884ed * infrun.c: Add #ifdef HP_OS_BUG to all references to
trap_expected_after_continue.
	* (wait_for_inferior):  Fix for remote watchpoints.  Don't try to
	insert breakpoints while target is running (this only works on
	*some* native targets).  This may also speed up native watchpoints
	considerably.
1995-05-15 20:15:17 +00:00
Jim Kingdon
4cc1b3f79d * gdbserver/remote-utils.c (write_ok): Write "OK", not "Ok", to
match stubs and protocol spec.
	* gdbserver/remote-utils.c (remote_open): Cast to struct sockaddr
	when passing to function which expects that.

	The following changes aren't quite enough to make things work with
	LynxOS (apprently kernel problems).
	* infrun.c (wait_for_inferior): When resuming new thread, pass pid
	not -1 for remote case.
	* thread.c (info_threads_command): Give error if !target_has_stack.
	* infrun.c (start_remote): Call init_thread_list.
	* thread.c (info_threads_command): Don't call kill for remote
	debugging target.
	* target.c (normal_pid_to_str): Print "thread" not "process" for
	remote.
	* remote.c, gdbserver/*: Add 'H', 'S', and 'C' requests, 'X'
	response, and `thread' part of 'T' response.
	* gdbserver/*: If program exits, send packet to GDB before
	exiting.  Handle termination with a signal the same as exiting
	with an exitstatus.
	* remote.c: Don't try to kill program after getting an 'X'
	response.
	* infrun.c (wait_for_inferior): Add comment about kill versus mourn.
1994-12-08 22:54:33 +00:00
Stu Grossman
479f0f18d4 * defs.h, infrun.c (wait_for_inferior), top.c: Call
target_wait_hook to allow GUI to handle blocking for inferior.  Call
	call_command_hook in execute_command to provide means for wrapping
	commands with GUI state change updates.
	* gdbtk.c (gdb_cmd):  Force GUI into idle mode when errors occur.
	* (gdb_stop):  New tcl command to stop the target process.
	* (x_event, gdbtk_wait):  Allow GUI to interrupt gdb out of target
	waits.
	* (gdbtk_call_command):  Wrapper around command processing to
	alert GUI of target state changes.
	* (gdbtk_init):  Get the fd of X server for doing async
	notification of X events (via x_event).  Setup new hooks.
	* gdbtk.tcl:  Add scrollbars to assembly and command windows.
	* Change window foreground & background colors.
	* Create margin tag for breakpoints in source and assembly windows.
	* Add new routines to be invoked when target state changes to/from
	idle.
	* Add start of expression window.
	* Change bindings of mouse button 1 in assembly and source window
	to just set or clear breakpoints when in the margin tag.
	* Change shape of register window to be more vertical to better
	reflect it's contents.
	* Add stop button.
	* Cleanup some code around command window bindings.

	* infrun.c (wait_for_inferior):  Make sure
	through_sigtramp_breakpoint is non-null before deleting.
1994-10-21 00:59:20 +00:00
Stu Grossman
320f93f714 * dbxread.c, partial-stab.h (near N_SO): SO stabs with blank
names mean end of .o file.
	* infrun.c (wait_for_inferior):  Clean up multi-thread logic near
	top of routine.  Handle new thread notification cleanly.
	* lynx-nat.c (child_wait):  General cleanups, handle new LynxOS
	thread notification scheme.
	* (child_resume):  General cleanups, handle resumption of all
	threads properly.
1994-06-28 23:36:52 +00:00
Stan Shebs
6d40175db0 Wed Jun 1 11:08:52 1994 Stan Shebs (shebs@andros.cygnus.com)
Hardware watchpoints for Linux, from Rick Sladkey
	(jrs@world.std.com).
	* infrun.c (wait_for_inferior) [HAVE_CONTINUABLE_WATCHPOINT]: Add
	new hardware breakpoint recovery method.
	* i386v-nat.c (i386_insert_watchpoint,
	i386_insert_nonaligned_watchpoint, i386_remove_watchpoint,
	i386_stopped_by_watchpoint) [TARGET_CAN_USE_HARWARE_WATCHPOINT]:
	New functions to support the 386 hardware debugging registers.
	* config/i386/nm-linux.h (TARGET_CAN_USE_HARDWARE_WATCHPOINT,
	HAVE_CONTINUABLE_WATCHPOINT, STOPPED_BY_WATCHPOINT,
	target_insert_watchpoint, target_remove_watchpoint): Define these
	macros to use the hardware debugging functions in i386v-nat.c.
1994-06-01 18:26:16 +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
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
Peter Schauer
2fe3b329f6 * infrun.c (IN_SOLIB_TRAMPOLINE): Correct comment, trampolines
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.
1994-04-08 00:35:15 +00:00
Jim Kingdon
d1c0c6cf7b * infrun.c (wait_for_inferior): In checking
remove_breakpoints_on_following_step, check
	through_sigtramp_breakpoint as well as step_resume_breakpoint.
1994-03-02 17:49:45 +00:00
Jim Kingdon
b5aff26825 * mips-tdep.c (mips_step_skips_delay), config/mips/tm-mips.h
(STEP_SKIPS_DELAY): Added.
	* infrun.c (proceed) [STEP_SKIPS_DELAY]: Check for a breakpoint in
	the delay slot.
1994-03-01 00:15:07 +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