This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Revert accidental push of "Inline breakpoints" commit


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=7b045207d1b8980add1c87b643504e3ef987e7a2

commit 7b045207d1b8980add1c87b643504e3ef987e7a2
Author: Pedro Alves <palves@redhat.com>
Date:   Thu Jun 14 12:54:09 2018 +0100

    Revert accidental push of "Inline breakpoints" commit

Diff:
---
 gdb/inline-frame.c                     | 23 ++++++++++++-----------
 gdb/testsuite/gdb.opt/inline-break.c   | 21 ---------------------
 gdb/testsuite/gdb.opt/inline-break.exp | 17 -----------------
 3 files changed, 12 insertions(+), 49 deletions(-)

diff --git a/gdb/inline-frame.c b/gdb/inline-frame.c
index 3edd5b2..1ac5835 100644
--- a/gdb/inline-frame.c
+++ b/gdb/inline-frame.c
@@ -286,10 +286,11 @@ block_starting_point_at (CORE_ADDR pc, const struct block *block)
 }
 
 /* Loop over the stop chain and determine if execution stopped in an
-   inlined frame because of a user breakpoint set at FRAME_BLOCK.  */
+   inlined frame because of a user breakpoint.  THIS_PC is the current
+   frame's PC.  */
 
 static bool
-stopped_by_user_bp_inline_frame (const block *frame_block, bpstat stop_chain)
+stopped_by_user_bp_inline_frame (CORE_ADDR this_pc, bpstat stop_chain)
 {
   for (bpstat s = stop_chain; s != NULL; s = s->next)
     {
@@ -300,9 +301,9 @@ stopped_by_user_bp_inline_frame (const block *frame_block, bpstat stop_chain)
 	  bp_location *loc = s->bp_location_at;
 	  enum bp_loc_type t = loc->loc_type;
 
-	  if ((t == bp_loc_software_breakpoint
-	       || t == bp_loc_hardware_breakpoint)
-	      && frame_block == SYMBOL_BLOCK_VALUE (loc->symbol))
+	  if (loc->address == this_pc
+	      && (t == bp_loc_software_breakpoint
+		  || t == bp_loc_hardware_breakpoint))
 	    return true;
 	}
     }
@@ -339,12 +340,12 @@ skip_inline_frames (ptid_t ptid, bpstat stop_chain)
 		{
 		  /* Do not skip the inlined frame if execution
 		     stopped in an inlined frame because of a user
-		     breakpoint for this inline function.  */
-		  if (stopped_by_user_bp_inline_frame (cur_block, stop_chain))
-		    break;
-
-		  skip_count++;
-		  last_sym = BLOCK_FUNCTION (cur_block);
+		     breakpoint.  */
+		  if (!stopped_by_user_bp_inline_frame (this_pc, stop_chain))
+		    {
+		      skip_count++;
+		      last_sym = BLOCK_FUNCTION (cur_block);
+		    }
 		}
 	      else
 		break;
diff --git a/gdb/testsuite/gdb.opt/inline-break.c b/gdb/testsuite/gdb.opt/inline-break.c
index 351b983..922102d 100644
--- a/gdb/testsuite/gdb.opt/inline-break.c
+++ b/gdb/testsuite/gdb.opt/inline-break.c
@@ -176,25 +176,6 @@ not_inline_func3 (int x)
   return y + inline_func3 (x);
 }
 
-/* A static inlined function that is called by another static inlined
-   function.  */
-
-static inline ATTR int
-func_callee (int x)
-{
-  return x * 23;
-}
-
-/* A static inlined function that calls another static inlined
-   function.  The body of the function is as simple as possible so
-   that both functions are inlined to the same PC address.  */
-
-static int
-func_caller (int x)
-{
-  return func_callee (x);
-}
-
 /* Entry point.  */
 
 int
@@ -224,7 +205,5 @@ main (int argc, char *argv[])
 
   x = not_inline_func3 (-21);
 
-  func_caller (1);
-
   return x;
 }
diff --git a/gdb/testsuite/gdb.opt/inline-break.exp b/gdb/testsuite/gdb.opt/inline-break.exp
index f1ab3d2..008ff1a 100644
--- a/gdb/testsuite/gdb.opt/inline-break.exp
+++ b/gdb/testsuite/gdb.opt/inline-break.exp
@@ -231,21 +231,4 @@ foreach_with_prefix cmd [list "break" "tbreak"] {
     }
 }
 
-# func_caller and func_callee are both inline functions, and one calls
-# the other.  Test that setting a breakpoint on the caller reports the
-# stop at the caller, and that setting a breakpoint at the callee
-# reports a stop at the callee.
-foreach_with_prefix func {"func_callee" "func_caller"} {
-    clean_restart $binfile
-
-    if {![runto main]} {
-	untested "could not run to main"
-	continue
-    }
-
-    gdb_breakpoint $func
-    gdb_test "continue" "Breakpoint .* $func .*at .*$srcfile.*" \
-	"continue to inline function"
-}
-
 unset -nocomplain results


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]