Enhance decoding of mq_* syscalls

* mq.c (SYS_FUNC(mq_open)): Add RVAL_FD to return value.
(SYS_FUNC(mq_timedsend), SYS_FUNC(mq_timedreceive), SYS_FUNC(mq_notify),
SYS_FUNC(mq_getsetattr)): Print the first argument using printfd.
* NEWS: Mention this change.
* pathtrace.c (pathtrace_match_set) <SEN_mq_getsetattr, SEN_mq_notify,
SEN_mq_open, SEN_mq_timedreceive, SEN_mq_timedsend>: Skip matching.
* linux/32/syscallent.h (mq_getsetattr, mq_notify, mq_open,
mq_timedreceive, mq_timedsend): Add TD flag.
* linux/64/syscallent.h: Likewise.
* linux/alpha/syscallent.h: Likewise.
* linux/arm/syscallent.h: Likewise.
* linux/avr32/syscallent.h: Likewise.
* linux/bfin/syscallent.h: Likewise.
* linux/crisv10/syscallent.h: Likewise.
* linux/hppa/syscallent.h: Likewise.
* linux/i386/syscallent.h: Likewise.
* linux/ia64/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/syscallent.h: Likewise.
* linux/mips/syscallent-n32.h: Likewise.
* linux/mips/syscallent-n64.h: Likewise.
* linux/mips/syscallent-o32.h: Likewise.
* linux/powerpc/syscallent.h: Likewise.
* linux/powerpc64/syscallent.h: Likewise.
* linux/s390/syscallent.h: Likewise.
* linux/s390x/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/sparc/syscallent.h: Likewise.
* linux/sparc64/syscallent.h: Likewise.
* linux/x32/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
* linux/xtensa/syscallent.h: Likewise.
This commit is contained in:
Дмитрий Левин 2018-01-15 22:47:38 +00:00
parent 24d48dde06
commit 8672a7189d
29 changed files with 149 additions and 135 deletions

5
NEWS
View File

@ -10,12 +10,17 @@ Noteworthy changes in release ?.?? (????-??-??)
* Enhanced decoding of getsockopt and setsockopt syscalls for SOL_NETLINK
level.
* Enhanced decoding of BPF_MAP_CREATE command of bpf syscall.
* Print values returned by mq_open syscall and first arguments
of mq_getsetattr, mq_notify, mq_timedreceive, and mq_timedsend syscalls
as file descriptors.
* Updated lists of MSG_*, NT_*, and SHM_* constants.
* Added manual page for the strace-log-merge command.
* Updated lists of ioctl commands from Linux 4.15.
* Bug fixes
* Fixed multi-personality support in cross builds.
* Added mq_getsetattr, mq_notify, mq_open, mq_timedreceive, and mq_timedsend
syscalls to %desc tracing set.
Noteworthy changes in release 4.20 (2017-11-13)
===============================================

View File

@ -185,12 +185,12 @@
[177] = { 0, NF, SEN(getegid), "getegid" },
[178] = { 0, NF, SEN(gettid), "gettid" },
[179] = { 1, 0, SEN(sysinfo), "sysinfo" },
[180] = { 4, 0, SEN(mq_open), "mq_open" },
[180] = { 4, TD, SEN(mq_open), "mq_open" },
[181] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[182] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[183] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[184] = { 2, 0, SEN(mq_notify), "mq_notify" },
[185] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[182] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[183] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[184] = { 2, TD, SEN(mq_notify), "mq_notify" },
[185] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[186] = { 2, TI, SEN(msgget), "msgget" },
[187] = { 3, TI, SEN(msgctl), "msgctl" },
[188] = { 5, TI, SEN(msgrcv), "msgrcv" },

View File

@ -178,12 +178,12 @@
[177] = { 0, NF, SEN(getegid), "getegid" },
[178] = { 0, NF, SEN(gettid), "gettid" },
[179] = { 1, 0, SEN(sysinfo), "sysinfo" },
[180] = { 4, 0, SEN(mq_open), "mq_open" },
[180] = { 4, TD, SEN(mq_open), "mq_open" },
[181] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[182] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[183] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[184] = { 2, 0, SEN(mq_notify), "mq_notify" },
[185] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[182] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[183] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[184] = { 2, TD, SEN(mq_notify), "mq_notify" },
[185] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[186] = { 2, TI, SEN(msgget), "msgget" },
[187] = { 3, TI, SEN(msgctl), "msgctl" },
[188] = { 5, TI, SEN(msgrcv), "msgrcv" },

View File

@ -395,12 +395,12 @@
[429] = { 6, TM, SEN(mbind), "mbind" }, /* not implemented */
[430] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" }, /* not implemented */
[431] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" }, /* not implemented */
[432] = { 4, 0, SEN(mq_open), "mq_open" },
[432] = { 4, TD, SEN(mq_open), "mq_open" },
[433] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[434] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[435] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[436] = { 2, 0, SEN(mq_notify), "mq_notify" },
[437] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[434] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[435] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[436] = { 2, TD, SEN(mq_notify), "mq_notify" },
[437] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[438] = { 5, TP, SEN(waitid), "waitid" },
[439] = { 5, 0, SEN(add_key), "add_key" },
[440] = { 4, 0, SEN(request_key), "request_key" },

View File

@ -299,12 +299,12 @@
[271] = { 3, 0, SEN(printargs), "pciconfig_iobase" },
[272] = { 5, 0, SEN(printargs), "pciconfig_read" },
[273] = { 5, 0, SEN(printargs), "pciconfig_write" },
[274] = { 4, 0, SEN(mq_open), "mq_open" },
[274] = { 4, TD, SEN(mq_open), "mq_open" },
[275] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[276] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[277] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[278] = { 2, 0, SEN(mq_notify), "mq_notify" },
[279] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[276] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[277] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[278] = { 2, TD, SEN(mq_notify), "mq_notify" },
[279] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[280] = { 5, TP, SEN(waitid), "waitid" },
[281] = { 3, TN, SEN(socket), "socket" },
[282] = { 3, TN, SEN(bind), "bind" },

View File

@ -253,12 +253,12 @@
[224] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" },
[225] = { 3, 0, SEN(printargs), "cacheflush" },
[226] = { 5, 0, SEN(vserver), "vserver" },
[227] = { 4, 0, SEN(mq_open), "mq_open" },
[227] = { 4, TD, SEN(mq_open), "mq_open" },
[228] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[229] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[230] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[231] = { 2, 0, SEN(mq_notify), "mq_notify" },
[232] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[229] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[230] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[231] = { 2, TD, SEN(mq_notify), "mq_notify" },
[232] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[233] = { 4, 0, SEN(kexec_load), "kexec_load" },
[234] = { 5, TP, SEN(waitid), "waitid" },
[235] = { 5, 0, SEN(add_key), "add_key" },

View File

@ -304,12 +304,12 @@
[275] = { 6, TM, SEN(mbind), "mbind" },
[276] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" },
[277] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" },
[278] = { 4, 0, SEN(mq_open), "mq_open" },
[278] = { 4, TD, SEN(mq_open), "mq_open" },
[279] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[280] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[281] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[282] = { 2, 0, SEN(mq_notify), "mq_notify" },
[283] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[280] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[281] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[282] = { 2, TD, SEN(mq_notify), "mq_notify" },
[283] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[284] = { 4, 0, SEN(kexec_load), "kexec_load" },
[285] = { 5, TP, SEN(waitid), "waitid" },
[286] = { 5, 0, SEN(add_key), "add_key" },

View File

@ -271,12 +271,12 @@
[274] = { 6, TM, SEN(mbind), "mbind" },
[275] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" },
[276] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" },
[277] = { 4, 0, SEN(mq_open), "mq_open" },
[277] = { 4, TD, SEN(mq_open), "mq_open" },
[278] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[279] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[280] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[281] = { 2, 0, SEN(mq_notify), "mq_notify" },
[282] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[279] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[280] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[281] = { 2, TD, SEN(mq_notify), "mq_notify" },
[282] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[283] = { 4, 0, SEN(kexec_load), "kexec_load" },
[284] = { 5, TP, SEN(waitid), "waitid" },
[286] = { 5, 0, SEN(add_key), "add_key" },

View File

@ -232,12 +232,12 @@
[226] = { 4, TD, SEN(epoll_wait), "epoll_wait" },
[227] = { 5, TM|SI, SEN(remap_file_pages), "remap_file_pages" },
[228] = { 4, TI, SEN(semtimedop), "semtimedop" },
[229] = { 4, 0, SEN(mq_open), "mq_open" },
[229] = { 4, TD, SEN(mq_open), "mq_open" },
[230] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[231] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[232] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[233] = { 2, 0, SEN(mq_notify), "mq_notify" },
[234] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[231] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[232] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[233] = { 2, TD, SEN(mq_notify), "mq_notify" },
[234] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[235] = { 5, TP, SEN(waitid), "waitid" },
[236] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" },
[237] = { 1, 0, SEN(set_tid_address), "set_tid_address" },

View File

@ -303,12 +303,12 @@
[274] = { 6, TM, SEN(mbind), "mbind" },
[275] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" },
[276] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" },
[277] = { 4, 0, SEN(mq_open), "mq_open" },
[277] = { 4, TD, SEN(mq_open), "mq_open" },
[278] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[279] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[280] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[281] = { 2, 0, SEN(mq_notify), "mq_notify" },
[282] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[279] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[280] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[281] = { 2, TD, SEN(mq_notify), "mq_notify" },
[282] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[283] = { 4, 0, SEN(kexec_load), "kexec_load" },
[284] = { 5, TP, SEN(waitid), "waitid" },
[285] = { }, /* sys_setaltroot */

View File

@ -280,12 +280,12 @@
[1259] = { 6, TM, SEN(mbind), "mbind" },
[1260] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" },
[1261] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" },
[1262] = { 4, 0, SEN(mq_open), "mq_open" },
[1262] = { 4, TD, SEN(mq_open), "mq_open" },
[1263] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[1264] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[1265] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[1266] = { 2, 0, SEN(mq_notify), "mq_notify" },
[1267] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[1264] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[1265] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[1266] = { 2, TD, SEN(mq_notify), "mq_notify" },
[1267] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[1268] = { 4, 0, SEN(kexec_load), "kexec_load" },
[1269] = { 5, 0, SEN(vserver), "vserver" },
[1270] = { 5, TP, SEN(waitid), "waitid" },

View File

@ -297,12 +297,12 @@
[268] = { 6, TM, SEN(mbind), "mbind" },
[269] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" },
[270] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" },
[271] = { 4, 0, SEN(mq_open), "mq_open" },
[271] = { 4, TD, SEN(mq_open), "mq_open" },
[272] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[273] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[274] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[275] = { 2, 0, SEN(mq_notify), "mq_notify" },
[276] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[273] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[274] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[275] = { 2, TD, SEN(mq_notify), "mq_notify" },
[276] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[277] = { 5, TP, SEN(waitid), "waitid" },
[278] = { 5, 0, SEN(vserver), "vserver" },
[279] = { 5, 0, SEN(add_key), "add_key" },

View File

@ -303,12 +303,12 @@
[274] = { 6, TM, SEN(mbind), "mbind" },
[275] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" },
[276] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" },
[277] = { 4, 0, SEN(mq_open), "mq_open" },
[277] = { 4, TD, SEN(mq_open), "mq_open" },
[278] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[279] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[280] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[281] = { 2, 0, SEN(mq_notify), "mq_notify" },
[282] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[279] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[280] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[281] = { 2, TD, SEN(mq_notify), "mq_notify" },
[282] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[283] = { 4, 0, SEN(kexec_load), "kexec_load" },
[284] = { 5, TP, SEN(waitid), "waitid" },
[285] = { },

View File

@ -234,12 +234,12 @@
[6231] = { 6, TM, SEN(mbind), "mbind" },
[6232] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" },
[6233] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" },
[6234] = { 4, 0, SEN(mq_open), "mq_open" },
[6234] = { 4, TD, SEN(mq_open), "mq_open" },
[6235] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[6236] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[6237] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[6238] = { 2, 0, SEN(mq_notify), "mq_notify" },
[6239] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[6236] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[6237] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[6238] = { 2, TD, SEN(mq_notify), "mq_notify" },
[6239] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[6240] = { 5, 0, SEN(vserver), "vserver" },
[6241] = { 5, TP, SEN(waitid), "waitid" },
[6242] = { },

View File

@ -230,12 +230,12 @@
[5227] = { 6, TM, SEN(mbind), "mbind" },
[5228] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" },
[5229] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" },
[5230] = { 4, 0, SEN(mq_open), "mq_open" },
[5230] = { 4, TD, SEN(mq_open), "mq_open" },
[5231] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[5232] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[5233] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[5234] = { 2, 0, SEN(mq_notify), "mq_notify" },
[5235] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[5232] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[5233] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[5234] = { 2, TD, SEN(mq_notify), "mq_notify" },
[5235] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[5236] = { 5, 0, SEN(vserver), "vserver" },
[5237] = { 5, TP, SEN(waitid), "waitid" },
[5238] = { },

View File

@ -272,12 +272,12 @@
[4268] = { 6, TM, SEN(mbind), "mbind" },
[4269] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" },
[4270] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" },
[4271] = { 4, 0, SEN(mq_open), "mq_open" },
[4271] = { 4, TD, SEN(mq_open), "mq_open" },
[4272] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[4273] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[4274] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[4275] = { 2, 0, SEN(mq_notify), "mq_notify" },
[4276] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[4273] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[4274] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[4275] = { 2, TD, SEN(mq_notify), "mq_notify" },
[4276] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[4277] = { 5, 0, SEN(vserver), "vserver" },
[4278] = { 5, TP, SEN(waitid), "waitid" },
[4279] = { },

View File

@ -289,12 +289,12 @@
[259] = { 6, TM, SEN(mbind), "mbind" },
[260] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" },
[261] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" },
[262] = { 4, 0, SEN(mq_open), "mq_open" },
[262] = { 4, TD, SEN(mq_open), "mq_open" },
[263] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[264] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[265] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[266] = { 2, 0, SEN(mq_notify), "mq_notify" },
[267] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[264] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[265] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[266] = { 2, TD, SEN(mq_notify), "mq_notify" },
[267] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[268] = { 4, 0, SEN(kexec_load), "kexec_load" },
[269] = { 5, 0, SEN(add_key), "add_key" },
[270] = { 4, 0, SEN(request_key), "request_key" },

View File

@ -284,12 +284,12 @@
[259] = { 6, TM, SEN(mbind), "mbind" },
[260] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" },
[261] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" },
[262] = { 4, 0, SEN(mq_open), "mq_open" },
[262] = { 4, TD, SEN(mq_open), "mq_open" },
[263] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[264] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[265] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[266] = { 2, 0, SEN(mq_notify), "mq_notify" },
[267] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[264] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[265] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[266] = { 2, TD, SEN(mq_notify), "mq_notify" },
[267] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[268] = { 4, 0, SEN(kexec_load), "kexec_load" },
[269] = { 5, 0, SEN(add_key), "add_key" },
[270] = { 4, 0, SEN(request_key), "request_key" },

View File

@ -300,12 +300,12 @@
[268] = { 6, TM, SEN(mbind), "mbind" },
[269] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" },
[270] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" },
[271] = { 4, 0, SEN(mq_open), "mq_open" },
[271] = { 4, TD, SEN(mq_open), "mq_open" },
[272] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[273] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[274] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[275] = { 2, 0, SEN(mq_notify), "mq_notify" },
[276] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[273] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[274] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[275] = { 2, TD, SEN(mq_notify), "mq_notify" },
[276] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[277] = { 4, 0, SEN(kexec_load), "kexec_load" },
[278] = { 5, 0, SEN(add_key), "add_key" },
[279] = { 4, 0, SEN(request_key), "request_key" },

View File

@ -284,12 +284,12 @@
[268] = { 6, TM, SEN(mbind), "mbind" },
[269] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" },
[270] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" },
[271] = { 4, 0, SEN(mq_open), "mq_open" },
[271] = { 4, TD, SEN(mq_open), "mq_open" },
[272] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[273] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[274] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[275] = { 2, 0, SEN(mq_notify), "mq_notify" },
[276] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[273] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[274] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[275] = { 2, TD, SEN(mq_notify), "mq_notify" },
[276] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[277] = { 4, 0, SEN(kexec_load), "kexec_load" },
[278] = { 5, 0, SEN(add_key), "add_key" },
[279] = { 4, 0, SEN(request_key), "request_key" },

View File

@ -303,12 +303,12 @@
[274] = { 6, TM, SEN(mbind), "mbind" },
[275] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" },
[276] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" },
[277] = { 4, 0, SEN(mq_open), "mq_open" },
[277] = { 4, TD, SEN(mq_open), "mq_open" },
[278] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[279] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[280] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[281] = { 2, 0, SEN(mq_notify), "mq_notify" },
[282] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[279] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[280] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[281] = { 2, TD, SEN(mq_notify), "mq_notify" },
[282] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[283] = { 4, 0, SEN(kexec_load), "kexec_load" },
[284] = { 5, TP, SEN(waitid), "waitid" },
[285] = { 5, 0, SEN(add_key), "add_key" },

View File

@ -329,12 +329,12 @@
[302] = { 6, TM, SEN(mbind), "mbind" },
[303] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" },
[304] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" },
[305] = { 4, 0, SEN(mq_open), "mq_open" },
[305] = { 4, TD, SEN(mq_open), "mq_open" },
[306] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[307] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[308] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[309] = { 2, 0, SEN(mq_notify), "mq_notify" },
[310] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[307] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[308] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[309] = { 2, TD, SEN(mq_notify), "mq_notify" },
[310] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[311] = { 4, 0, SEN(kexec_load), "kexec_load" },
[312] = { 5, TP, SEN(waitid), "waitid" },
[313] = { 5, 0, SEN(add_key), "add_key" },

View File

@ -271,12 +271,12 @@
[270] = { 3, 0, SEN(io_submit), "io_submit" },
[271] = { 3, 0, SEN(io_cancel), "io_cancel" },
[272] = { 5, 0, SEN(io_getevents), "io_getevents" },
[273] = { 4, 0, SEN(mq_open), "mq_open" },
[273] = { 4, TD, SEN(mq_open), "mq_open" },
[274] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[275] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[276] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[277] = { 2, 0, SEN(mq_notify), "mq_notify" },
[278] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[275] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[276] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[277] = { 2, TD, SEN(mq_notify), "mq_notify" },
[278] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[279] = { 5, TP, SEN(waitid), "waitid" },
[280] = { 4, TD, SEN(tee), "tee" },
[281] = { 5, 0, SEN(add_key), "add_key" },

View File

@ -269,12 +269,12 @@
[270] = { 3, 0, SEN(io_submit), "io_submit" },
[271] = { 3, 0, SEN(io_cancel), "io_cancel" },
[272] = { 5, 0, SEN(io_getevents), "io_getevents" },
[273] = { 4, 0, SEN(mq_open), "mq_open" },
[273] = { 4, TD, SEN(mq_open), "mq_open" },
[274] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[275] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[276] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[277] = { 2, 0, SEN(mq_notify), "mq_notify" },
[278] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[275] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[276] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[277] = { 2, TD, SEN(mq_notify), "mq_notify" },
[278] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[279] = { 5, TP, SEN(waitid), "waitid" },
[280] = { 4, TD, SEN(tee), "tee" },
[281] = { 5, 0, SEN(add_key), "add_key" },

View File

@ -238,12 +238,12 @@
[237] = { 6, TM, SEN(mbind), "mbind" },
[238] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" },
[239] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" },
[240] = { 4, 0, SEN(mq_open), "mq_open" },
[240] = { 4, TD, SEN(mq_open), "mq_open" },
[241] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[242] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[243] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[242] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[243] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[244] = { 2, 0, SEN(printargs), "64:mq_notify" },
[245] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[245] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[246] = { 4, 0, SEN(printargs), "64:kexec_load" },
[247] = { 5, TP, SEN(printargs), "64:waitid" },
[248] = { 5, 0, SEN(add_key), "add_key" },
@ -351,7 +351,7 @@
[524] = { 3, CST|TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" },
[525] = { 2, CST|TS, SEN(sigaltstack), "sigaltstack" },
[526] = { 3, CST, SEN(timer_create), "timer_create" },
[527] = { 2, CST, SEN(mq_notify), "mq_notify" },
[527] = { 2, CST|TD, SEN(mq_notify), "mq_notify" },
[528] = { 4, CST, SEN(kexec_load), "kexec_load" },
[529] = { 5, CST|TP, SEN(waitid), "waitid" },
[530] = { 2, CST, SEN(set_robust_list), "set_robust_list" },

View File

@ -238,12 +238,12 @@
[237] = { 6, TM, SEN(mbind), "mbind" },
[238] = { 3, TM, SEN(set_mempolicy), "set_mempolicy" },
[239] = { 5, TM, SEN(get_mempolicy), "get_mempolicy" },
[240] = { 4, 0, SEN(mq_open), "mq_open" },
[240] = { 4, TD, SEN(mq_open), "mq_open" },
[241] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[242] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[243] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[244] = { 2, 0, SEN(mq_notify), "mq_notify" },
[245] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[242] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[243] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[244] = { 2, TD, SEN(mq_notify), "mq_notify" },
[245] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[246] = { 4, 0, SEN(kexec_load), "kexec_load" },
[247] = { 5, TP, SEN(waitid), "waitid" },
[248] = { 5, 0, SEN(add_key), "add_key" },

View File

@ -222,12 +222,12 @@
[229] = { 4, TS, SEN(rt_sigtimedwait), "rt_sigtimedwait" },
[230] = { 3, TS, SEN(rt_sigqueueinfo), "rt_sigqueueinfo" },
[231] = { 2, TS, SEN(rt_sigsuspend), "rt_sigsuspend" },
[232] = { 4, 0, SEN(mq_open), "mq_open" },
[232] = { 4, TD, SEN(mq_open), "mq_open" },
[233] = { 1, 0, SEN(mq_unlink), "mq_unlink" },
[234] = { 5, 0, SEN(mq_timedsend), "mq_timedsend" },
[235] = { 5, 0, SEN(mq_timedreceive), "mq_timedreceive" },
[236] = { 2, 0, SEN(mq_notify), "mq_notify" },
[237] = { 3, 0, SEN(mq_getsetattr), "mq_getsetattr" },
[234] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" },
[235] = { 5, TD, SEN(mq_timedreceive), "mq_timedreceive" },
[236] = { 2, TD, SEN(mq_notify), "mq_notify" },
[237] = { 3, TD, SEN(mq_getsetattr), "mq_getsetattr" },
[238] = { },
[239] = { 2, TM, SEN(io_setup), "io_setup" },
[240] = { 1, TM, SEN(io_destroy), "io_destroy" },

14
mq.c
View File

@ -43,12 +43,13 @@ SYS_FUNC(mq_open)
tprints(", ");
printmqattr(tcp, tcp->u_arg[3], false);
}
return RVAL_DECODED;
return RVAL_DECODED | RVAL_FD;
}
SYS_FUNC(mq_timedsend)
{
tprintf("%d, ", (int) tcp->u_arg[0]);
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
printstrn(tcp, tcp->u_arg[1], tcp->u_arg[2]);
tprintf(", %" PRI_klu ", %u, ", tcp->u_arg[2],
(unsigned int) tcp->u_arg[3]);
@ -59,7 +60,8 @@ SYS_FUNC(mq_timedsend)
SYS_FUNC(mq_timedreceive)
{
if (entering(tcp)) {
tprintf("%d, ", (int) tcp->u_arg[0]);
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
} else {
if (syserror(tcp))
printaddr(tcp->u_arg[1]);
@ -82,7 +84,8 @@ SYS_FUNC(mq_timedreceive)
SYS_FUNC(mq_notify)
{
tprintf("%d, ", (int) tcp->u_arg[0]);
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
print_sigevent(tcp, tcp->u_arg[1]);
return RVAL_DECODED;
}
@ -90,7 +93,8 @@ SYS_FUNC(mq_notify)
SYS_FUNC(mq_getsetattr)
{
if (entering(tcp)) {
tprintf("%d, ", (int) tcp->u_arg[0]);
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
printmqattr(tcp, tcp->u_arg[1], true);
tprints(", ");
} else {

View File

@ -349,6 +349,11 @@ pathtrace_match_set(struct tcb *tcp, struct path_set *set)
case SEN_inotify_init:
case SEN_inotify_init1:
case SEN_memfd_create:
case SEN_mq_getsetattr:
case SEN_mq_notify:
case SEN_mq_open:
case SEN_mq_timedreceive:
case SEN_mq_timedsend:
case SEN_perf_event_open:
case SEN_pipe:
case SEN_pipe2: