diff options
author | Pedro Alves <palves@redhat.com> | 2018-06-14 12:54:09 +0100 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2018-06-14 12:54:09 +0100 |
commit | 7b045207d1b8980add1c87b643504e3ef987e7a2 (patch) | |
tree | 109bf76e0fdc424f205f8dc83d86f2af30625efc | |
parent | 11ae5818f76e0af4dcf7ee069e0756ccf6901ebe (diff) | |
download | gdb-7b045207d1b8980add1c87b643504e3ef987e7a2.zip gdb-7b045207d1b8980add1c87b643504e3ef987e7a2.tar.gz gdb-7b045207d1b8980add1c87b643504e3ef987e7a2.tar.bz2 |
Revert accidental push of "Inline breakpoints" commit
-rw-r--r-- | gdb/inline-frame.c | 23 | ||||
-rw-r--r-- | gdb/testsuite/gdb.opt/inline-break.c | 21 | ||||
-rw-r--r-- | 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 |