This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Add Linux PTRACE_EVENT_STOP



On 07/02/2017 06:32, Dmitry V. Levin wrote:
> On Tue, Feb 07, 2017 at 12:06:05AM -0800, Kir Kolyshkin wrote:
>> Add PTRACE_EVENT_STOP value to Linux's sys/ptrace.h, modify related
>> comments accordingly.
>>
>> This constant initially appeared in Linux 3.1 (kernel commit 3544d72a,
>> "ptrace: implement PTRACE_SEIZE") but its value has changed later
>> in Linux 3.4 (kernel commit 5cdf389a, "ptrace: renumber
>> PTRACE_EVENT_STOP so that future new options and events can match").
>>
>> The comment is also taken from the above commit.
>>
>> This constant is used by e.g. strace, CRIU, Mozilla RR.
> 
> JFTR, strace has a workaround for this early PTRACE_EVENT_STOP bug:
> 
> #ifdef PTRACE_EVENT_STOP
> /* Linux 3.1 - 3.3 releases had a broken value.  It was fixed in 3.4.  */
> # if PTRACE_EVENT_STOP == 7
> #  undef PTRACE_EVENT_STOP
> # endif
> #endif
> #ifndef PTRACE_EVENT_STOP
> # define PTRACE_EVENT_STOP      128
> #endif

For initial patch (3544d72a) it seems that at least for kernel 3.1 and 3.2
the PTRACE_EVENT_STOP for kabi matter is indeed the old value.  However I do
not see a safe way to actually get the expected value without some runtime
check and this is not meant for an glibc abi.

> 
>> 2017-02-06  Kir Kolyshkin  <kir@openvz.org>
>>
>> 	* sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h: Add PTRACE_EVENT_STOP.
> 
> It should rather be
> 
> 	* sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h (__ptrace_eventcodes):
> 	Add PTRACE_EVENT_STOP.
> 
>> 	* sysdeps/unix/sysv/linux/ia64/sys/ptrace.h: Likewise.
>> 	* sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h: Likewise.
>> 	* sysdeps/unix/sysv/linux/s390/sys/ptrace.h: Likewise.
>> 	* sysdeps/unix/sysv/linux/sparc/sys/ptrace.h: Likewise.
>> 	* sysdeps/unix/sysv/linux/sys/ptrace.h: Likewise.
>> 	* sysdeps/unix/sysv/linux/tile/sys/ptrace.h: Likewise.
> 
> The whole change LGTM.

Ack.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]