This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [patch] unbreak nios2-*-linux* testing
- From: Sandra Loosemore <sandra at codesourcery dot com>
- To: Yao Qi <qiyaoltc at gmail dot com>, <gdb-patches at sourceware dot org>
- Date: Mon, 6 Jul 2015 10:32:23 -0600
- Subject: Re: [patch] unbreak nios2-*-linux* testing
- Authentication-results: sourceware.org; auth=none
- References: <5592AE67 dot 9080905 at codesourcery dot com>
On 06/30/2015 08:57 AM, Sandra Loosemore wrote:
As previously noted, on Nios II Linux targets, the kernel now puts
signal handler handler trampolines on a read-only page of memory and GDB
cannot set single-step breakpoints there. My last attempt at working
around this
https://sourceware.org/ml/gdb-patches/2015-04/msg01092.html
was rejected in favor of some not-yet-implemented target-independent
solution:
https://sourceware.org/ml/gdb-patches/2015-05/msg00183.html
Given that the discussion pointed to by that thread is 11 years old, I
think it's safe to say that fixing this is not a priority. :-(
Meanwhile, the GDB testsuite remains broken on this target. Tests are
not just failing, but getting stuck in infinite loops trying
unsuccessfully to step out of a signal handler without recognizing that
they are stuck. This is blocking regression testing of other patches in
my queue.
This patch adds kfails for these issues similar to what other targets
with this problem already do. There are no code changes.
OK to commit, so I can get on with other work?
-Sandra
I realized I attached the wrong patch to my previous mail. Here's the
right one. Is this one OK?
-Sandra
2015-06-29 Sandra Loosemore <sandra@codesourcery.com>
gdb/testsuite/
* gdb.base/sigaltstack.exp (finish_test): Add kfail for
nios2-*-linux*.
* gdb.base/sigbpt.exp (stepi_out): Likewise.
* gdb.base/siginfo.exp: Likewise.
* gdb.base/sigstep.exp (advance, advancei): Likewise.
diff --git a/gdb/testsuite/gdb.base/sigaltstack.exp b/gdb/testsuite/gdb.base/sigaltstack.exp
index b65ea48..59a6c17 100644
--- a/gdb/testsuite/gdb.base/sigaltstack.exp
+++ b/gdb/testsuite/gdb.base/sigaltstack.exp
@@ -76,6 +76,7 @@ proc finish_test { pattern msg } {
# don't gracefully fall back to single-stepping.
setup_kfail gdb/8841 "i?86-*-linux*"
setup_kfail gdb/8841 "*-*-openbsd*"
+ setup_kfail gdb/8841 "nios2-*-linux*"
fail "$msg (could not set breakpoint)"
}
-re "$pattern.*${gdb_prompt} $" {
diff --git a/gdb/testsuite/gdb.base/sigbpt.exp b/gdb/testsuite/gdb.base/sigbpt.exp
index ac1378f..a53a71c 100644
--- a/gdb/testsuite/gdb.base/sigbpt.exp
+++ b/gdb/testsuite/gdb.base/sigbpt.exp
@@ -159,6 +159,10 @@ proc stepi_out { name args } {
setup_kfail gdb/8841 "sparc*-*-openbsd*"
fail "$test (could not insert single-step breakpoint)"
}
+ -re "Cannot insert breakpoint.*Cannot access memory.*$gdb_prompt $" {
+ setup_kfail gdb/8841 "nios2*-*-linux*"
+ fail "$test (could not insert single-step breakpoint)"
+ }
-re "keeper.*$gdb_prompt $" {
send_gdb "stepi\n"
exp_continue
diff --git a/gdb/testsuite/gdb.base/siginfo.exp b/gdb/testsuite/gdb.base/siginfo.exp
index 1ae87dd..45365a5 100644
--- a/gdb/testsuite/gdb.base/siginfo.exp
+++ b/gdb/testsuite/gdb.base/siginfo.exp
@@ -64,6 +64,10 @@ gdb_test_multiple "step" "${test}" {
setup_kfail gdb/8841 sparc*-*-openbsd*
fail "$test (could not insert single-step breakpoint)"
}
+ -re "Cannot insert breakpoint.*Cannot access memory.*$gdb_prompt $" {
+ setup_kfail gdb/8841 "nios2*-*-linux*"
+ fail "$test (could not insert single-step breakpoint)"
+ }
-re "done = 1;.*${gdb_prompt} $" {
send_gdb "$i\n"
exp_continue
diff --git a/gdb/testsuite/gdb.base/sigstep.exp b/gdb/testsuite/gdb.base/sigstep.exp
index 3c9454c..413f6de 100644
--- a/gdb/testsuite/gdb.base/sigstep.exp
+++ b/gdb/testsuite/gdb.base/sigstep.exp
@@ -109,6 +109,10 @@ proc advance { enter_cmd in_handler_prefix in_handler exit_cmd } {
setup_kfail gdb/8841 "sparc*-*-openbsd*"
fail "$test (could not insert single-step breakpoint)"
}
+ -re "Cannot insert breakpoint.*Cannot access memory.*$gdb_prompt $" {
+ setup_kfail gdb/8841 "nios2*-*-linux*"
+ fail "$test (could not insert single-step breakpoint)"
+ }
-re "done = 1;.*${gdb_prompt} $" {
send_gdb "$exit_cmd\n"
exp_continue -continue_timer
@@ -203,6 +207,7 @@ proc advancei { cmd } {
# don't gracefully fall back to single-stepping.
setup_kfail gdb/8841 "i?86-*-linux*"
setup_kfail gdb/8841 "*-*-openbsd*"
+ setup_kfail gdb/8841 "nios2-*-linux*"
fail "$test (could not set breakpoint)"
return
}