Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Pedro Alves <pedro@codesourcery.com>
To: gdb-patches@sourceware.org
Subject: gc ONE_PROCESS_WRITETEXT
Date: Sun, 28 Dec 2008 18:53:00 -0000	[thread overview]
Message-ID: <200812281852.30247.pedro@codesourcery.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 2184 bytes --]

Hi guys,

This drops the last bits of ONE_PROCESS_WRITETEXT macro from the
codebase, since no target/host actually defines this by now.

The "It might be running in another process" notice in normal_stop
when breakpoints fail to be removed is quite likelly related to this, and
although wasn't conditionalized on ONE_PROCESS_WRITETEXT, should be dropped as
well IMO, as it is confusing.  Would anyone miss it?  This was the 
reason I haven't checked it in as obvious yet.

The most complete description I could find of this macro was in gdb 4.6
sources:

 gdb/xm-hp300bsd.h-64-/* Kernel is a bit tenacious about sharing text segments, disallowing bpts.  */
 gdb/xm-hp300bsd.h:65:#define    ONE_PROCESS_WRITETEXT

 @c FIXME: "cannot insert breakpoints" error, v unclear.
 @c        Q in pending mail to Gilmore. ---pesch@cygnus.com, 26mar91
 @c        some light may be shed by looking at instances of
 @c        ONE_PROCESS_WRITETEXT.  But error message seems possible otherwise
 @c        too.  pesch, 20sep91
 Under some operating systems, breakpoints cannot be used in a program if
 any other process is running that program.  In this situation,
 attempting to run or continue a program with a breakpoint causes _GDBN__
 to stop the other process.

 When this happens, you have three ways to proceed:

 @enumerate
 @item
 Remove or disable the breakpoints, then continue.

 @item
 Suspend _GDBN__, and copy the file containing your program to a new name.
 Resume _GDBN__ and use the @code{exec-file} command to specify that _GDBN__
 should run your program under that name.  Then start your program again.

 @c FIXME: RMS commented here "Show example".  Maybe when someone
 @c explains the first FIXME: in this section...

And in this 1991 ChangeLog entry:

 Mon Sep  9 13:45:57 1991  John Gilmore  (gnu at cygint.cygnus.com)

        * breakpoint.c (insert_breakpoints):  Restore warning about
        the program might be running in another process, but only for
        systems with this brain death (#ifdef ONE_PROCESS_WRITETEXT).
        * xm-hp300bsd.h, xm-mips.h, xm-vax.h:  Define it.

I don't think we care about systems with this brain death anymore ...

-- 
Pedro Alves

[-- Attachment #2: one_process_writetext.diff --]
[-- Type: text/x-diff, Size: 4616 bytes --]

gdb/
2008-12-28  Pedro Alves  <pedro@codesourcery.com>

	Delete ONE_PROCESS_WRITETEXT leftovers.

	* breakpoint.c (insert_bp_location): Delete process_warning
	argument.  Adjust.
	(insert_breakpoint_locations): Adjust.
	(reattach_breakpoints): Adjust.
	* infrun.c (normal_stop): Drop "It might be running in another
	process" notice.

gdb/doc/
2008-12-28  Pedro Alves  <pedro@codesourcery.com>

	* gdbint.texinfo (Native Conditionals): Delete
	ONE_PROCESS_WRITETEXT description.

---
 gdb/breakpoint.c       |   19 +++++--------------
 gdb/doc/gdbint.texinfo |    5 -----
 gdb/infrun.c           |    1 -
 3 files changed, 5 insertions(+), 20 deletions(-)

Index: src/gdb/breakpoint.c
===================================================================
--- src.orig/gdb/breakpoint.c	2008-12-28 18:14:28.000000000 +0000
+++ src/gdb/breakpoint.c	2008-12-28 18:14:37.000000000 +0000
@@ -1009,14 +1009,14 @@ should_be_inserted (struct bp_location *
 
 /* Insert a low-level "breakpoint" of some type.  BPT is the breakpoint.
    Any error messages are printed to TMP_ERROR_STREAM; and DISABLED_BREAKS,
-   PROCESS_WARNING, and HW_BREAKPOINT_ERROR are used to report problems.
+   and HW_BREAKPOINT_ERROR are used to report problems.
 
    NOTE drow/2003-09-09: This routine could be broken down to an object-style
    method for each breakpoint or catchpoint type.  */
 static int
 insert_bp_location (struct bp_location *bpt,
 		    struct ui_file *tmp_error_stream,
-		    int *disabled_breaks, int *process_warning,
+		    int *disabled_breaks,
 		    int *hw_breakpoint_error)
 {
   int val = 0;
@@ -1159,9 +1159,6 @@ Note: automatically using hardware break
 	    }
 	  else
 	    {
-#ifdef ONE_PROCESS_WRITETEXT
-	      *process_warning = 1;
-#endif
 	      if (bpt->loc_type == bp_loc_hardware_breakpoint)
 		{
 		  *hw_breakpoint_error = 1;
@@ -1259,7 +1256,6 @@ insert_breakpoint_locations (void)
   int val = 0;
   int disabled_breaks = 0;
   int hw_breakpoint_error = 0;
-  int process_warning = 0;
 
   struct ui_file *tmp_error_stream = mem_fileopen ();
   make_cleanup_ui_file_delete (tmp_error_stream);
@@ -1280,7 +1276,7 @@ insert_breakpoint_locations (void)
 	continue;
 
       val = insert_bp_location (b, tmp_error_stream,
-				    &disabled_breaks, &process_warning,
+				    &disabled_breaks,
 				    &hw_breakpoint_error);
       if (val)
 	error = val;
@@ -1332,11 +1328,6 @@ insert_breakpoint_locations (void)
 			      "Could not insert hardware breakpoints:\n\
 You may have requested too many hardware breakpoints/watchpoints.\n");
 	}
-#ifdef ONE_PROCESS_WRITETEXT
-      if (process_warning)
-	fprintf_unfiltered (tmp_error_stream,
-			    "The same program may be running in another process.");
-#endif
       target_terminal_ours_for_output ();
       error_stream (tmp_error_stream);
     }
@@ -1385,7 +1376,7 @@ reattach_breakpoints (int pid)
   int val;
   struct cleanup *old_chain = save_inferior_ptid ();
   struct ui_file *tmp_error_stream = mem_fileopen ();
-  int dummy1 = 0, dummy2 = 0, dummy3 = 0;
+  int dummy1 = 0, dummy2 = 0;
 
   make_cleanup_ui_file_delete (tmp_error_stream);
 
@@ -1396,7 +1387,7 @@ reattach_breakpoints (int pid)
       {
 	b->inserted = 0;
 	val = insert_bp_location (b, tmp_error_stream,
-				  &dummy1, &dummy2, &dummy3);
+				  &dummy1, &dummy2);
 	if (val != 0)
 	  {
 	    do_cleanups (old_chain);
Index: src/gdb/infrun.c
===================================================================
--- src.orig/gdb/infrun.c	2008-12-28 18:14:28.000000000 +0000
+++ src/gdb/infrun.c	2008-12-28 18:14:37.000000000 +0000
@@ -4207,7 +4207,6 @@ normal_stop (void)
 	  target_terminal_ours_for_output ();
 	  printf_filtered (_("\
 Cannot remove breakpoints because program is no longer writable.\n\
-It might be running in another process.\n\
 Further execution is probably impossible.\n"));
 	}
     }
Index: src/gdb/doc/gdbint.texinfo
===================================================================
--- src.orig/gdb/doc/gdbint.texinfo	2008-12-28 18:14:29.000000000 +0000
+++ src/gdb/doc/gdbint.texinfo	2008-12-28 18:14:37.000000000 +0000
@@ -4552,11 +4552,6 @@ pointer.  It examines the current state 
 An x86-based machine can define this to use the generic x86 watchpoint
 support; see @ref{Algorithms, I386_USE_GENERIC_WATCHPOINTS}.
 
-@item ONE_PROCESS_WRITETEXT
-@findex ONE_PROCESS_WRITETEXT
-Define this to be able to, when a breakpoint insertion fails, warn the
-user that another process may be running with the same executable.
-
 @item PROC_NAME_FMT
 @findex PROC_NAME_FMT
 Defines the format for the name of a @file{/proc} device.  Should be

             reply	other threads:[~2008-12-28 18:53 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-28 18:53 Pedro Alves [this message]
2008-12-28 19:14 ` Pedro Alves
2008-12-28 20:08   ` Eli Zaretskii
2009-01-07 21:43     ` Pedro Alves

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200812281852.30247.pedro@codesourcery.com \
    --to=pedro@codesourcery.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox