aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2014-09-22 11:12:30 +0100
committerPedro Alves <palves@redhat.com>2014-09-25 16:56:00 +0100
commit03d469572472d5c59d8a35030bb1b8072c217dc7 (patch)
treed19dbac24676f42221856770492eb21cd959f389 /gdb
parente558d7c1095545832a90e76f72e6db6c98fdee0f (diff)
downloadgdb-03d469572472d5c59d8a35030bb1b8072c217dc7.zip
gdb-03d469572472d5c59d8a35030bb1b8072c217dc7.tar.gz
gdb-03d469572472d5c59d8a35030bb1b8072c217dc7.tar.bz2
infrun.c:user_visible_resume_ptid: Don't check singlestep_breakpoints_inserted_p
What matters for this function, is whether the user requested a "step", for "set scheduler-locking step", not whether GDB is doing an internal step for some reason. /* Return a ptid representing the set of threads that we will proceed, in the perspective of the user/frontend. */ extern ptid_t user_visible_resume_ptid (int step); Therefore, the check for singlestep_breakpoints_inserted_p is actually incorrect, and we end up applying schedlock more often on sss targets than on non-sss targets. Found by inspection while working on a patch that eliminates the singlestep_breakpoints_inserted_p global. Tested on x86_64 Fedora 20 on top of my 'software single-step on x86' series. gdb/ 2014-09-25 Pedro Alves <palves@redhat.com> * infrun.c (user_visible_resume_ptid): Don't check singlestep_breakpoints_inserted_p.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/infrun.c3
2 files changed, 6 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index a191b62..dbd222d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2014-09-25 Pedro Alves <palves@redhat.com>
+ * infrun.c (user_visible_resume_ptid): Don't check
+ singlestep_breakpoints_inserted_p.
+
+2014-09-25 Pedro Alves <palves@redhat.com>
+
* breakpoint.c (should_be_inserted): Add debug output.
2014-09-25 Pedro Alves <palves@redhat.com>
diff --git a/gdb/infrun.c b/gdb/infrun.c
index dc696e9..5e123be 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -1739,8 +1739,7 @@ user_visible_resume_ptid (int step)
resume_ptid = inferior_ptid;
}
else if ((scheduler_mode == schedlock_on)
- || (scheduler_mode == schedlock_step
- && (step || singlestep_breakpoints_inserted_p)))
+ || (scheduler_mode == schedlock_step && step))
{
/* User-settable 'scheduler' mode requires solo thread resume. */
resume_ptid = inferior_ptid;