report events from resumed threads.
* gdb.threads/schedlock.exp (get_args): Update to work for any
value of NUM.
(Top level): Report the number of threads that did not resume.
+2008-07-27 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * linux-nat.c (count_events_callback, select_event_lwp_callback): Only
+ report events from resumed threads.
+
2008-07-27 Daniel Jacobowitz <dan@codesourcery.com>
* mips-linux-tdep.c (mips_linux_syscall_next_pc): New function.
gdb_assert (count != NULL);
- /* Count only LWPs that have a SIGTRAP event pending. */
- if (lp->status != 0
+ /* Count only resumed LWPs that have a SIGTRAP event pending. */
+ if (lp->status != 0 && lp->resumed
&& WIFSTOPPED (lp->status) && WSTOPSIG (lp->status) == SIGTRAP)
(*count)++;
gdb_assert (selector != NULL);
- /* Select only LWPs that have a SIGTRAP event pending. */
- if (lp->status != 0
+ /* Select only resumed LWPs that have a SIGTRAP event pending. */
+ if (lp->status != 0 && lp->resumed
&& WIFSTOPPED (lp->status) && WSTOPSIG (lp->status) == SIGTRAP)
if ((*selector)-- == 0)
return 1;
+2008-07-27 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * gdb.threads/schedlock.exp (get_args): Update to work for any
+ value of NUM.
+ (Top level): Report the number of threads that did not resume.
+
2008-07-27 Daniel Jacobowitz <dan@codesourcery.com>
* gdb.dwarf2/dw2-compressed.S: Also define __start.
proc get_args { } {
global list_count
global gdb_prompt
+ global NUM
+
+ set pattern "(\[0-9\]+)"
+ for {set i 1} {[expr $i < $NUM]} {incr i} {
+ append pattern ", (\[0-9\]+)"
+ }
send_gdb "print args\n"
gdb_expect {
- -re "\\\$\[0-9\]+ = {(\[0-9\]+), (\[0-9\]+)}.*$gdb_prompt"
+ -re "\\\$\[0-9\]+ = {$pattern}.*$gdb_prompt"
{
set list_count [expr $list_count + 1]
pass "listed args ($list_count)"
- return [list $expect_out(1,string) $expect_out(2,string)]
+
+ set result ""
+ for {set i 1} {[expr $i <= $NUM]} {incr i} {
+ lappend result $expect_out($i,string)
+ }
+ return $result
}
-re "$gdb_prompt"
{
set cont_args [get_args]
-set ok 1
+set bad 0
for {set i 0} {[expr $i < $NUM]} {set i [expr $i + 1]} {
if {[lindex $start_args $i] == [lindex $cont_args $i]} {
- set ok 0
+ incr bad
}
}
-if { $ok } {
+if { $bad == 0 } {
pass "all threads alive"
} else {
- fail "all threads alive"
+ fail "all threads alive ($bad/$NUM did not run)"
}
# We can't change threads, unfortunately, in current GDB. Use