[PATCH v3 2/3] Add an optional "alias" attribute to syscall entries.

John Baldwin jhb@FreeBSD.org
Wed Nov 28 18:00:00 GMT 2018


On 11/28/18 9:44 AM, Eli Zaretskii wrote:
>> Cc: gdb-patches@sourceware.org
>> From: John Baldwin <jhb@FreeBSD.org>
>> Date: Wed, 28 Nov 2018 09:22:22 -0800
>>
>> Yes, I think this is better as well.  Eli, I don't know if other OS's will
>> make use of this feature.  Given Pedro's new text above, do you think it
>> should still be moved into a native section or should it stay in the the
>> syscall section?
> 
> I question the need to make this text more general than this feature
> will ever become.  But if Pedro thinks we will have similar aliases on
> other OSes, then sure, do it as Pedro suggests.

Oh, I was just referring to Pedro's version being shorter.  I'm fine with
moving it.  This is a bit longer as it restores a bit of the FreeBSD-specific
note about syscall ABIs but that seemed relevant when moving it:

diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 944a2c4383..c60c2b80c4 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -22329,6 +22329,7 @@ configurations.
 * Cygwin Native::		Features specific to the Cygwin port
 * Hurd Native::                 Features specific to @sc{gnu} Hurd
 * Darwin::			Features specific to Darwin
+* FreeBSD::			Features specific to FreeBSD
 @end menu
 
 @node BSD libkvm Interface
@@ -23214,6 +23215,26 @@ better understand the cause of a fault.  The default is off.
 Show the current state of exceptions trapping.
 @end table
 
+@node FreeBSD
+@subsection FreeBSD
+@cindex FreeBSD
+
+When the ABI of a system call is changed in the FreeBSD kernel, 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 version using the new ABI.  As a convenience, when a system call
+is caught by name, compatibility system calls are also caught.
+
+For example, FreeBSD 12 introduced a new variant of the @code{kevent}
+system call and catching the @code{kevent} system call by name catches
+both variants:
+
+@smallexample
+(@value{GDBP}) catch syscall kevent
+Catchpoint 1 (syscalls 'freebsd11_kevent' [363] 'kevent' [560])
+(@value{GDBP})
+@end smallexample
+
 
 @node Embedded OS
 @section Embedded Operating Systems


-- 
John Baldwin

                                                                            



More information about the Gdb-patches mailing list