[PATCH] gdb: testsuite: fix wrong expected result in attach-pie-noexec.exp
Tiezhu Yang
yangtiezhu@loongson.cn
Tue Nov 23 10:16:11 GMT 2021
On 11/23/2021 04:25 PM, Tom de Vries wrote:
> On 11/23/21 4:39 AM, Tiezhu Yang wrote:
>> If /proc/sys/kernel/yama/ptrace_scope is 1, when execute attach-pie-noexec.exp
>> without superuser, the gdb.log shows the following info:
>>
>> (gdb) attach 6500
>> Attaching to process 6500
>> ptrace: Operation not permitted.
>> (gdb) PASS: gdb.base/attach-pie-noexec.exp: attach
>>
>> It is obviously wrong, the expected result should be FAIL in such a case.
>>
>
> Agreed, PASS is incorrect, I suppose though that UNTESTED or UNSUPPORTED
> would be better than FAIL.
>
> Anyway, looking earlier in the test-case I see:
> ...
> if {![can_spawn_for_attach]} {
> return 0
> }
> ...
> and in gdb/testsuite/lib/gdb.exp I see:
> ...
> # Return true if we can spawn a program on the target and attach to
>
> # it.
>
>
> proc can_spawn_for_attach { } {
> ...
>
> So, is it not a more complete fix to make can_spawn_for_attach to return
> false for this case? It would have to setup a small test-case, compile
> it to exec, spawn it and try to attach to it. This is much more work
> than it's currently doing, so it would have to become a
> gdb_caching_proc. For an example, look for instance at
> target_supports_scheduler_locking .
Hi Tom,
Thanks for your reply and suggestion.
Let me use UNSUPPORTED if "ptrace: Operation not permitted." at this
moment, I will send v2 soon.
Thanks,
Tiezhu
>
> Thanks,
> - Tom
>
>> With this patch:
>>
>> (gdb) attach 6600
>> Attaching to process 6600
>> ptrace: Operation not permitted.
>> (gdb) FAIL: gdb.base/attach-pie-noexec.exp: attach (please check privileges and try again)
>>> When check this log info if failed, we can do the following processes
> to test:
>> (1) set ptrace_scope as 0
>> $ echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
>> $ make check-gdb TESTS="gdb.base/attach-pie-noexec.exp"
>> (2) use sudo to test
>> $ sudo make check-gdb TESTS="gdb.base/attach-pie-noexec.exp"
>>
>> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
>> ---
>> gdb/testsuite/gdb.base/attach-pie-noexec.exp | 10 +++++++++-
>> 1 file changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/gdb/testsuite/gdb.base/attach-pie-noexec.exp b/gdb/testsuite/gdb.base/attach-pie-noexec.exp
>> index 85161fa..c029003 100644
>> --- a/gdb/testsuite/gdb.base/attach-pie-noexec.exp
>> +++ b/gdb/testsuite/gdb.base/attach-pie-noexec.exp
>> @@ -59,7 +59,15 @@ set testpid [spawn_id_get_pid $test_spawn_id]
>>
>> gdb_start
>> file delete -- $binfile
>> -gdb_test "attach $testpid" "Attaching to process $testpid\r\n.*" "attach"
>> +set test "attach"
>> +gdb_test_multiple "attach $testpid" $test {
>> + -re "Attaching to process $testpid\r\n.*No executable file now.*\r\n$gdb_prompt $" {
>> + pass $test
>> + }
>> + -re "Attaching to process $testpid\r\n.*ptrace: Operation not permitted\\.\r\n$gdb_prompt $" {
>> + fail "$test (please check privileges and try again)"
>> + }
>> +}
>> gdb_test "set architecture $arch" "The target architecture is set to \"$arch\"\\."
>> gdb_test "info shared" "From\[ \t\]+To\[ \t\]+Syms Read\[ \t\]+Shared Object Library\r\n0x.*"
>>
>>
More information about the Gdb-patches
mailing list