According to the error message, the first argument of ptrace() should be
PTRACE_SINGLESTEP instead of PTRACE_CONT when ptrace single step.
Fixes: f43365ee17f8 ("selftests: arm64: add test for unaligned/inexact watchpoint handling")
Signed-off-by: Tiezhu Yang <[email protected]>
---
tools/testing/selftests/breakpoints/breakpoint_test_arm64.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/breakpoints/breakpoint_test_arm64.c b/tools/testing/selftests/breakpoints/breakpoint_test_arm64.c
index ad41ea6..2f4d4d6 100644
--- a/tools/testing/selftests/breakpoints/breakpoint_test_arm64.c
+++ b/tools/testing/selftests/breakpoints/breakpoint_test_arm64.c
@@ -143,7 +143,7 @@ static bool run_test(int wr_size, int wp_size, int wr, int wp)
if (!set_watchpoint(pid, wp_size, wp))
return false;
- if (ptrace(PTRACE_CONT, pid, NULL, NULL) < 0) {
+ if (ptrace(PTRACE_SINGLESTEP, pid, NULL, NULL) < 0) {
ksft_print_msg(
"ptrace(PTRACE_SINGLESTEP) failed: %s\n",
strerror(errno));
--
2.1.0
On 2/3/21 1:39 AM, Tiezhu Yang wrote:
> According to the error message, the first argument of ptrace() should be
> PTRACE_SINGLESTEP instead of PTRACE_CONT when ptrace single step.
>
> Fixes: f43365ee17f8 ("selftests: arm64: add test for unaligned/inexact watchpoint handling")
> Signed-off-by: Tiezhu Yang <[email protected]>
> ---
> tools/testing/selftests/breakpoints/breakpoint_test_arm64.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/breakpoints/breakpoint_test_arm64.c b/tools/testing/selftests/breakpoints/breakpoint_test_arm64.c
> index ad41ea6..2f4d4d6 100644
> --- a/tools/testing/selftests/breakpoints/breakpoint_test_arm64.c
> +++ b/tools/testing/selftests/breakpoints/breakpoint_test_arm64.c
> @@ -143,7 +143,7 @@ static bool run_test(int wr_size, int wp_size, int wr, int wp)
> if (!set_watchpoint(pid, wp_size, wp))
> return false;
>
> - if (ptrace(PTRACE_CONT, pid, NULL, NULL) < 0) {
> + if (ptrace(PTRACE_SINGLESTEP, pid, NULL, NULL) < 0) {
> ksft_print_msg(
> "ptrace(PTRACE_SINGLESTEP) failed: %s\n",
> strerror(errno));
>
Right before this it does a set_watchpoint(). PTRACE_CONT is what
makes sense to me. Error might be the one that is incorrect here?
thanks,
-- Shuah
On 02/04/2021 02:30 AM, Shuah Khan wrote:
> On 2/3/21 1:39 AM, Tiezhu Yang wrote:
>> According to the error message, the first argument of ptrace() should be
>> PTRACE_SINGLESTEP instead of PTRACE_CONT when ptrace single step.
>>
>> Fixes: f43365ee17f8 ("selftests: arm64: add test for
>> unaligned/inexact watchpoint handling")
>> Signed-off-by: Tiezhu Yang <[email protected]>
>> ---
>> tools/testing/selftests/breakpoints/breakpoint_test_arm64.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git
>> a/tools/testing/selftests/breakpoints/breakpoint_test_arm64.c
>> b/tools/testing/selftests/breakpoints/breakpoint_test_arm64.c
>> index ad41ea6..2f4d4d6 100644
>> --- a/tools/testing/selftests/breakpoints/breakpoint_test_arm64.c
>> +++ b/tools/testing/selftests/breakpoints/breakpoint_test_arm64.c
>> @@ -143,7 +143,7 @@ static bool run_test(int wr_size, int wp_size,
>> int wr, int wp)
>> if (!set_watchpoint(pid, wp_size, wp))
>> return false;
>> - if (ptrace(PTRACE_CONT, pid, NULL, NULL) < 0) {
>> + if (ptrace(PTRACE_SINGLESTEP, pid, NULL, NULL) < 0) {
>> ksft_print_msg(
>> "ptrace(PTRACE_SINGLESTEP) failed: %s\n",
>> strerror(errno));
>>
>
> Right before this it does a set_watchpoint(). PTRACE_CONT is what
> makes sense to me. Error might be the one that is incorrect here?
What do you think the following change? If it is OK, I will send v2 soon.
diff --git a/tools/testing/selftests/breakpoints/breakpoint_test_arm64.c
b/tools/testing/selftests/breakpoints/breakpoint_test_arm64.c
index ad41ea6..e704181 100644
--- a/tools/testing/selftests/breakpoints/breakpoint_test_arm64.c
+++ b/tools/testing/selftests/breakpoints/breakpoint_test_arm64.c
@@ -145,7 +145,7 @@ static bool run_test(int wr_size, int wp_size, int
wr, int wp)
if (ptrace(PTRACE_CONT, pid, NULL, NULL) < 0) {
ksft_print_msg(
- "ptrace(PTRACE_SINGLESTEP) failed: %s\n",
+ "ptrace(PTRACE_CONT) failed: %s\n",
strerror(errno));
return false;
}
@@ -159,7 +159,7 @@ static bool run_test(int wr_size, int wp_size, int
wr, int wp)
}
alarm(0);
if (WIFEXITED(status)) {
- ksft_print_msg("child did not single-step\n");
+ ksft_print_msg("child exited prematurely\n");
return false;
}
if (!WIFSTOPPED(status)) {
Thanks,
Tiezhu
>
> thanks,
> -- Shuah