From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 66507 invoked by alias); 4 Sep 2019 19:58:08 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 66495 invoked by uid 89); 4 Sep 2019 19:58:07 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_PASS autolearn=ham version=3.3.1 spammy= X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 04 Sep 2019 19:58:06 +0000 Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 9F616CF22 for ; Wed, 4 Sep 2019 19:58:04 +0000 (UTC) Received: by mail-wm1-f72.google.com with SMTP id m6so34145wmf.2 for ; Wed, 04 Sep 2019 12:58:04 -0700 (PDT) Received: from ?IPv6:2001:8a0:f913:f700:56ee:75ff:fe8d:232b? ([2001:8a0:f913:f700:56ee:75ff:fe8d:232b]) by smtp.gmail.com with ESMTPSA id n14sm70197926wra.75.2019.09.04.12.58.02 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 04 Sep 2019 12:58:02 -0700 (PDT) Subject: Re: [PATCH v2] Improve ptrace-error detection on Linux targets To: Sergio Durigan Junior References: <20190819032918.3536-1-sergiodj@redhat.com> <20190826183205.19008-1-sergiodj@redhat.com> <28c4f743-91f1-59c3-83ff-3f791811f996@redhat.com> <87mufrai1z.fsf@redhat.com> <87zhjjrh7n.fsf@redhat.com> Cc: GDB Patches , Eli Zaretskii , Ruslan Kabatsayev From: Pedro Alves Message-ID: Date: Wed, 04 Sep 2019 19:58:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 MIME-Version: 1.0 In-Reply-To: <87zhjjrh7n.fsf@redhat.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-SW-Source: 2019-09/txt/msg00038.txt.bz2 On 9/4/19 8:31 PM, Sergio Durigan Junior wrote: > I forgot to say, but the way my patch works now prevents the code path > above to be executed. My patch catches the ptrace failure very early in > gdbserver initialization the process, when linux_child_function is > called during the execution of linux_check_ptrace_features. Since > linux_child_function will try to perform a PTRACE_TRACEME (and fail if > there are any restrictions in place), gdbserver will error out before it > even tries to spawn/attach. > > Nevertheless, during my tests I bypassed linux_check_ptrace_features and > confirmed that the error message from linux_attach (above) is correctly > displayed: > > [sergio@fedora-rawhide build]$ sleep 120 & > [5] 2732388 > [sergio@fedora-rawhide build]$ ./gdb/gdbserver/gdbserver :9911 --attach 2732388 > gdbserver: linux_ptrace_test_ret_to_nx: Cannot PTRACE_TRACEME: Operation not permitted > gdbserver: linux_ptrace_test_ret_to_nx: status 256 is not WIFSTOPPED! > gdbserver: linux_ptrace_test_ret_to_nx: failed to kill child pid 2732391 No such process > Cannot attach to process 2732388: > > The SELinux 'deny_ptrace' option is enabled and preventing GDB > from using 'ptrace'. You can disable it by executing (as root): > > setsebool deny_ptrace off > > The Linux kernel's Yama ptrace scope is in effect, which can prevent > GDB from using 'ptrace'. You can disable it by executing (as root): > > echo 0 > /proc/sys/kernel/yama/ptrace_scope > > Exiting So if you _don't_ hack linux_check_ptrace_features, what does the user see, with either gdbserver [OPTIONS] --attach COMM PID or extended-remote + "(gdb) attach" ? Thanks, Pedro Alves