+2008-01-20 Daniel Jacobowitz <dan@codesourcery.com>
+
+ PR gdb/9346
+ * infcmd.c (signal_command): Do not specify a resume PC.
+
2009-01-19 Doug Evans <dje@google.com>
* dummy-frame.c (dummy_frame): Replace regcache member with
}
clear_proceed_status ();
- /* "signal 0" should not get stuck if we are stopped at a breakpoint.
- FIXME: Neither should "signal foo" but when I tried passing
- (CORE_ADDR)-1 unconditionally I got a testsuite failure which I haven't
- tried to track down yet. */
- proceed (oursig == TARGET_SIGNAL_0 ? (CORE_ADDR) -1 : stop_pc, oursig, 0);
+ proceed ((CORE_ADDR) -1, oursig, 0);
}
/* Proceed until we reach a different source line with pc greater than
+2009-01-20 Daniel Jacobowitz <dan@codesourcery.com>
+
+ PR gdb/9346
+ * gdb.base/interrupt.c (sigint_handler): New.
+ (main): Install a SIGINT handler if SIGNALS is defined. Exit
+ on error.
+ * gdb.base/interrupt.exp: Define SIGNALS unless gdb,nosignals.
+ Test "signal SIGINT".
+
2009-01-19 Doug Evans <dje@google.com>
* gdb.base/break.exp: Update expected gdb output.
set testfile interrupt
set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+
+set options { debug }
+if { ! [target_info exists gdb,nosignals] } {
+ lappend options "additional_flags=-DSIGNALS"
+}
+
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable $options] != "" } {
untested interrupt.exp
return -1
}
eof { fail "echo data (eof)" }
}
- setup_xfail "i*86-pc-linux*-gnu*"
+ if { ! [target_info exists gdb,nosignals] } {
+ # Wait until the program is in the read system call again.
+ sleep 2
+
+ # Stop the program for another test.
+ set msg "Send Control-C, second time"
+ send_gdb "\003"
+ gdb_test_multiple "" "$msg" {
+ -re "Program received signal SIGINT.*$gdb_prompt $" {
+ pass "$msg"
+ }
+ }
+
+ # The "signal" command should deliver the correct signal and
+ # return to the loop.
+ set msg "signal SIGINT"
+ gdb_test_multiple "signal SIGINT" "$msg" {
+ -re "^signal SIGINT\r\nContinuing with signal SIGINT.\r\n(\r\n|)$" { pass "$msg" }
+ }
+
+ # We should be back in the loop.
+ send_gdb "more data\n"
+ gdb_expect {
+ -re "^(\r\n|)more data\r\n(|more data\r\n)$" { pass "echo more data" }
+ timeout { fail "echo more data (timeout)" }
+ eof { fail "echo more data (eof)" }
+ }
+ }
+
send_gdb "\004"
gdb_expect {
-re "end of file.*Program exited normally.*$gdb_prompt $" {