aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorDoug Evans <xdje42@gmail.com>2013-11-13 23:35:18 -0800
committerDoug Evans <xdje42@gmail.com>2013-11-13 23:35:18 -0800
commit6c1b0f7b1df8bf3aeade04a7bfa44ca5fd0a824c (patch)
tree832b4e6de0258e912ba3b550fdd0d1972f13a73a /gdb
parentec2af0ee47f19c8163989e45632c3cb2a2adbbc6 (diff)
downloadfsf-binutils-gdb-6c1b0f7b1df8bf3aeade04a7bfa44ca5fd0a824c.zip
fsf-binutils-gdb-6c1b0f7b1df8bf3aeade04a7bfa44ca5fd0a824c.tar.gz
fsf-binutils-gdb-6c1b0f7b1df8bf3aeade04a7bfa44ca5fd0a824c.tar.bz2
* breakpoint.c (bpstat_check_breakpoint_conditions): For thread
specific breakpoints, don't evaluate breakpoint condition if different thread.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/breakpoint.c12
2 files changed, 14 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 383c0b1..148b796 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2013-11-13 Doug Evans <xdje42@gmail.com>
+
+ * breakpoint.c (bpstat_check_breakpoint_conditions): For thread
+ specific breakpoints, don't evaluate breakpoint condition if
+ different thread.
+
2013-11-13 Keith Seitz <keiths@redhat.com>
PR c++/7935
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index f0b496d..5bfed9d 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -5134,6 +5134,14 @@ bpstat_check_breakpoint_conditions (bpstat bs, ptid_t ptid)
return;
}
+ /* If this is a thread-specific breakpoint, don't waste cpu evaluating the
+ condition if this isn't the specified thread. */
+ if (b->thread != -1 && b->thread != thread_id)
+ {
+ bs->stop = 0;
+ return;
+ }
+
/* Evaluate Python breakpoints that have a "stop" method implemented. */
if (b->py_bp_object)
bs->stop = gdbpy_should_stop (b->py_bp_object);
@@ -5217,10 +5225,6 @@ bpstat_check_breakpoint_conditions (bpstat bs, ptid_t ptid)
{
bs->stop = 0;
}
- else if (b->thread != -1 && b->thread != thread_id)
- {
- bs->stop = 0;
- }
else if (b->ignore_count > 0)
{
b->ignore_count--;