KDevelop - Attach debugger to a running process
John Hayes
jdhayes.linux at gmail.com
Tue Apr 7 14:52:05 BST 2020
On 4/7/20 8:27 AM, David Redondo wrote:
> Hi John,
>
> yes that's a kernel level setting. Probably depending on the distribution you
> are using. On my system (KDE Neon) /etc/sysctl.d/10-ptrace.conf reads:
> # The PTRACE system is used for debugging. With it, a single user process
> # can attach to any other dumpable process owned by the same user. In the
> # case of malicious software, it is possible to use PTRACE to access
> # credentials that exist in memory (re-using existing SSH connections,
> # extracting GPG agent information, etc).
> #
> # A PTRACE scope of "0" is the more permissive mode. A scope of "1" limits
> # PTRACE only to direct child processes (e.g. "gdb name-of-program" and
> # "strace -f name-of-program" work, but gdb's "attach" and "strace -fp $PID"
> # do not). The PTRACE scope is ignored when a user has CAP_SYS_PTRACE, so
> # "sudo strace -fp $PID" will work as before. For more details see:
> # https://wiki.ubuntu.com/SecurityTeam/Roadmap/KernelHardening#ptrace
> #
> # For applications launching crash handlers that need PTRACE, exceptions can
> # be registered by the debugee by declaring in the segfault handler
> # specifically which process will be using PTRACE on the debugee:
> # prctl(PR_SET_PTRACER, debugger_pid, 0, 0, 0);
> #
> # In general, PTRACE is not needed for the average running Ubuntu system.
> # To that end, the default is to set the PTRACE scope to "1". This value
> # may not be appropriate for developers or servers with only admin accounts.
>
> Regards,
> David
>
> Am Montag, 6. April 2020, 18:55:25 CEST schrieb John Hayes:
>> Aleix, Sven,
>>
On 4/7/20 8:39 AM, Jonathan Verner wrote:
> Hi,
>
> the problem is that on most distributions, attaching a debugger to a running
> process is not allowed by default. See, e.g., https://stackoverflow.com/
> questions/19215177/how-to-solve-ptrace-operation-not-permitted-when-trying-to-
> attach-gdb-to-a-pro
>
> As per the stackoverflow question, this can be solved by running
>
> $ echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
>
> or editing `/etc/sysctl.d/10-ptrace.conf`
>
> It seems a good idea to mention this in the documentation. Perhaps kdevelop
> could also provide a more userfriendly message...
>
> Cheers,
>
> Jonathan
>
> On pondělí 6. dubna 2020 18:55:25 CEST John Hayes wrote:
>> Aleix, Sven,
>>
>> Could you clarify the use of the Attach the Debugger to a running
>> Process? I am working on that section in the KDevelop5 manual and I can
>> attach to a running project with Heaptrack, but not with gdb or lldb.
>> When I try with either debugger I get:
>>
>> ptrace: Operation not permitted.
>>
>> Am I doing something wrong, or is this due to linux kernel changes?
>
Thanks guys, this looks like it will help me move forward on the manual.
It definitely needs to be mentioned in the manual to alleviate
frustration and additional questions.
--
Cheers,
John
More information about the KDevelop-devel
mailing list