This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB 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 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

                                                                            


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