From: Doug Evans Date: Thu, 14 Nov 2013 07:35:18 +0000 (-0800) Subject: * breakpoint.c (bpstat_check_breakpoint_conditions): For thread X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6c1b0f7b1df8bf3aeade04a7bfa44ca5fd0a824c;p=binutils-gdb.git * breakpoint.c (bpstat_check_breakpoint_conditions): For thread specific breakpoints, don't evaluate breakpoint condition if different thread. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 383c0b18c9e..148b796ed3f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2013-11-13 Doug Evans + + * breakpoint.c (bpstat_check_breakpoint_conditions): For thread + specific breakpoints, don't evaluate breakpoint condition if + different thread. + 2013-11-13 Keith Seitz PR c++/7935 diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index f0b496d7080..5bfed9d14ec 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--;