This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH v3 2/3] Add an optional "alias" attribute to syscall entries.
On 11/9/18 12:18 PM, Eli Zaretskii wrote:
>> From: John Baldwin <jhb@FreeBSD.org>
>> Date: Fri, 9 Nov 2018 12:04:31 -0800
>>
>> diff --git a/gdb/NEWS b/gdb/NEWS
>> index ff9b192a38..ff225f361e 100644
>> --- a/gdb/NEWS
>> +++ b/gdb/NEWS
>> @@ -38,6 +38,11 @@
>> requires the use of a keyword. Selecting a frame by level is
>> unchanged. The MI comment "-stack-select-frame" is unchanged.
>>
>> +* System call catchpoints now support system call aliases. This is
>> + used with the FreeBSD system call list so that system call
>> + catchpoints will also trigger for legacy system call numbers used by
>> + older FreeBSD binaries.
>
> IMO, this is very abstract and too vague to be useful. Since we won't
> have anything more detailed in the manual, would it be possible to
> make this description more concrete? E.g., how about using some of
> the text and examples you used in your description of the issue:
Ok. I wasn't too happy with my first attempt either. I've tried to give
some more detail while not making it too long. Let me know what you think:
* System call catchpoints now support system call aliases on FreeBSD.
When the ABI of a system call changes in FreeBSD, this is
implemented by leaving a compatibility system call using the old ABI
at the existing number and allocating a new system call number for
the new ABI. For example, FreeBSD 12 altered the layout of 'struct
kevent' used by the 'kevent' system call. As a result, FreeBSD 12
kernels ship with both 'kevent' and 'freebsd11_kevent' system calls.
The 'freebsd11_kevent' system call is assigned an alias of 'kevent'
so that a system call catchpoint for the 'kevent' system call will
catch invocations of both the 'kevent' and 'freebsd11_kevent'
binaries. This ensures that 'kevent' system calls are caught for
binaries using either the old or new ABIs.
--
John Baldwin