This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH v3 0/3] Update FreeBSD's syscall table
On 11/27/18 9:19 AM, Pedro Alves wrote:
> On 11/26/2018 08:31 PM, John Baldwin wrote:
>> On 11/9/18 12:04 PM, John Baldwin wrote:
>>> Relative to V2, this changes the "get syscalls" functions to pass in
>>> an integer vector by reference to append syscall numbers to. It also
>>> adds a NEWS entry and fixes some other nits noted by reviewers on the
>>> V2 series.
>>>
>>> John Baldwin (3):
>>> Change get_syscalls_by_group to append to an existing vector of
>>> integers.
>>> Add an optional "alias" attribute to syscall entries.
>>> Update the FreeBSD system call table to match FreeBSD 12.0.
>>>
>>> gdb/ChangeLog | 41 ++++++++++++
>>> gdb/NEWS | 5 ++
>>> gdb/break-catch-syscall.c | 25 ++------
>>> gdb/gdbarch.h | 3 -
>>> gdb/gdbarch.sh | 3 -
>>> gdb/syscalls/freebsd.xml | 110 ++++++++++++++++++++++++++-------
>>> gdb/syscalls/gdb-syscalls.dtd | 1 +
>>> gdb/syscalls/update-freebsd.sh | 78 +++++++++++++++++++++++
>>> gdb/xml-syscall.c | 108 ++++++++++++++++----------------
>>> gdb/xml-syscall.h | 20 +++---
>>> 10 files changed, 279 insertions(+), 115 deletions(-)
>>> create mode 100755 gdb/syscalls/update-freebsd.sh
>>
>> Ping? Eli signed off on an updated NEWS entry earlier in the thread. Any
>> further comments on the code changes?
> This looks good to me, though there's the issue with the non-const
> references discussed here:
>
> https://sourceware.org/ml/gdb-patches/2018-11/msg00351.html
> https://sourceware.org/ml/gdb-patches/2018-11/msg00441.html
> https://sourceware.org/ml/gdb-patches/2018-11/msg00443.html
> https://sourceware.org/ml/gdb-patches/2018-11/msg00444.html
Oh, whoops, I skimmed that thread I'm afraid. :(
I used a reference here due to the reasons you mentioned in your first
message, primarily not having to deal with it being NULL. I'm fine with
updating that to a pointer if that is the preferred route though.
> BTW:
>
>> - <syscall name="mknodat" number="498"/>
>> + <syscall name="freebsd11_mknodat" number="498" alias="mknodat"/>
>> ...
>> + <syscall name="mknodat" number="559"/>
>
> Does "catch syscall 498" catch only freebsd11_mknodat calls, or do
> we for some reason end up catching calls to 559 as well?
> I'd expect only 498. What about "catch syscall 559"?
They work as you would expect:
(gdb) catch syscall 498
Catchpoint 1 (syscall 'freebsd11_mknodat' [498])
(gdb) catch syscall 559
Catchpoint 2 (syscall 'mknodat' [559])
(gdb) info breakpoints
Num Type Disp Enb Address What
1 catchpoint keep y syscall "freebsd11_mknodat"
2 catchpoint keep y syscall "mknodat"
The aliases are only used when a syscall name is given rather than a number.
--
John Baldwin