7238 Commits

Author SHA1 Message Date
Eugene Syromyatnikov
33ea6a9bb0 xlat: provide fallback values for schedulers
* xlat/schedulers.in: Provide fallback values, add #value_indexed.
(SCHED_ISO): Comment out, not currently used in Linux.
2018-09-06 19:58:27 +02:00
Eugene Syromyatnikov
f4e7b1e740 Revert "netlink_diag: move constant definitions to xlats"
This reverts commit bfbdf336ec301578fe5ab80b3271f8f6ade71466.
2018-09-06 11:24:58 +02:00
Eugene Syromyatnikov
bfbdf336ec netlink_diag: move constant definitions to xlats
In order to avoid duplication.

* linux/netlink_diag.h (NETLINK_DIAG_MEMINFO, NETLINK_DIAG_GROUPS,
NETLINK_DIAG_RX_RING, NETLINK_DIAG_TX_RING, NETLINK_DIAG_FLAGS,
NDIAG_SHOW_MEMINFO, NDIAG_SHOW_GROUPS, NDIAG_SHOW_RING_CFG,
NDIAG_SHOW_FLAGS, NDIAG_FLAG_CB_RUNNING, NDIAG_FLAG_PKTINFO,
NDIAG_FLAG_BROADCAST_ERROR, NDIAG_FLAG_NO_ENOBUFS,
NDIAG_FLAG_LISTEN_ALL_NSID, NDIAG_FLAG_CAP_ACK): Remove.
* xlat/netlink_diag_attrs.in: Add fallback values.
* xlat/netlink_diag_show.in: Likewise.
* xlat/netlink_socket_flags.in: Likewise.
2018-09-05 00:45:35 +02:00
Eugene Syromyatnikov
08c045c3ac Work around possible post-execve-SIGTRAP when PTRACE_ATTACH is used 2018-09-04 22:14:03 +02:00
Eugene Syromyatnikov
68d33a311a fixup! syscall: track syscall system time a bit more explicitly 2018-09-04 22:12:13 +02:00
Eugene Syromyatnikov
d055196eb4 count: add information about minimum and maximum call duration
* count.c (struct call_counts): Add time_min, time_max fields.
(max_ts): New constant.
(enum count_summary_columns): Add CSC_TIME_MIN, CSC_TIME_MAX.
(count_syscall): Fill time_min field with max_ts in counts
initialisation, update time_min and time_max.
(min_time_cmp, max_time_cmp): New functions.
(set_sortby): Add keys for them.
(set_count_summary_columns): Add support for time_min and time_max
fields printing.
* strace.1.in (.SH OPTIONS) <-S, -U>: Document it.

Closes: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=240945
Closes: https://github.com/strace/strace/issues/32
2018-09-04 20:36:08 +02:00
Eugene Syromyatnikov
dd1061290f strace.1.in: variaous fixes 2018-09-04 20:30:56 +02:00
Eugene Syromyatnikov
1cf06bb8df strace.1.in: consistently use CTRL-combinations 2018-09-04 20:30:30 +02:00
Eugene Syromyatnikov
33e9a736b1 strace.1: more bold 2018-09-04 20:29:34 +02:00
Eugene Syromyatnikov
e369424a58 count: add ability to select columnt being shown
* count.c (set_count_summary_columns): New function.
* defs.h (set_count_summary_columns): New declaration.
* strace.c (init) <-U>: Pass option argument to
set_count_summary_columns.
* strace.1.in (.SH OPTIONS): Document it.
2018-09-04 20:28:38 +02:00
Eugene Syromyatnikov
cd6e2d27f8 strace.1: more fixes 2018-09-04 19:54:09 +02:00
Eugene Syromyatnikov
90320f4ce4 fixup! strace.1.in: print names of entities in bold, provide man page sections 2018-09-04 19:53:51 +02:00
Eugene Syromyatnikov
3ef3477891 count: add ability to sort on avg_time and errors fields
For completeness.

* count.c (avg_time_cmp, error_cmp): New functions.
(set_sortby): Add sort keys for the new fields.
* strace.1.in (.SH OPTIONS) <-S>: Document it.
2018-09-04 19:48:11 +02:00
Eugene Syromyatnikov
f0865403a2 count: refactor statistics calculation/output
In preparation to extension.

* count.c (enum count_summary_columns): New enumeration type.
(struct call_counts): Add time_avg field.
(DEF_COLUMNS): New macro.
(columns, visible): New variables.
(num_chars): New function.
(call_summary_pers): Calculate aggregate data first, then output table
based on columns configuration.
* tests/count-f.expected: Update expected output.
* tests/strace-C.expected: Likewise.
* tests/strace-S.test: Likewise.
2018-09-04 19:18:48 +02:00
Eugene Syromyatnikov
69d148d233 strace.1.in: assorted updates 2018-09-04 16:56:54 +02:00
Eugene Syromyatnikov
059568a665 strace.1.in: print names of entities in bold, provide man page sections
* strace.1.in (.SH DESCRIPTION): add man page section numbber to open,
lstat, getpwuid, id mentions.
(.SH OPTIONS): make strace mentions bold.
(.SH NOTES): It was meant setrlimit(3), not setrlimit(2).
2018-09-04 16:45:04 +02:00
Eugene Syromyatnikov
71404212b8 dist/README: add some additional links
* dist/README: Mention README-hacking, add links to repositories and
mailing list arhcive.

Suggested-by: Jamal Hadi Salim <jhs@mojatatu.com>
2018-09-04 16:32:25 +02:00
Eugene Syromyatnikov
86899822ba README.md: add link to new contributors guide.
* README.md: Add a link to the Guide of new contributors.

Suggested-by: Jamal Hadi Salim <jhs@mojatatu.com>
2018-09-04 15:54:30 +02:00
Eugene Syromyatnikov
05ae538c90 mmap_cache: simplify API
* mmap_cache.h (mmap_cache_rebuild_if_invalid_): rename from
mmap_cache_rebuild_if_invalid.
(mmap_cache_rebuild_if_invalid): New macro, a wrapper for
mmap_cache_rebuild_if_invalid_ that supplies __func__ to it.
(mmap_cache_free_): New declaration.
(mmap_cache_free): New macro, a wrapper for mmap_cache_free_ that
supplies __func__ to it.
* mmap_cache.c (mmap_cache_rebuild_if_invalid_): Rename from
mmap_cache_rebuild_if_invalid.
(mmap_cache_free_): New function.
* unwind-libunwind.c (tcb_walk): Remove __func__ argument from the
mmap_cache_rebuild_if_invalid call.
* kvm.c (vcpu_get_info): Likewise.
* strace.c (droptcb): Call mmap_cache_free.
2018-09-04 15:41:47 +02:00
Eugene Syromyatnikov
3305550ccc syscall.c: unify error printing a bit
As of now, when -e raw is set, ERESTART* return code descriptions
are not printed (generic "-1 ERESTART_RESTARTBLOCK (Unknown error 516)"
is printed instead).

* syscall.c (err_desc): New function.
(print_err_ret): Print return code if it is not a ERESTART* error.
(syscall_exiting_trace): Use print_err_ret for normal error return
string printing.
2018-09-04 15:19:20 +02:00
Eugene Syromyatnikov
57a2b0fbdd syscall.c: avoid infinite loop in subcalls parsing
clang complains about it, so it might be a good reason to refactor it
into something more linear.

* syscall.c (syscall_entering_decode): put syscall subcall decoding
before ipc/socket subcall decoding, remove loop.
2018-09-04 14:48:13 +02:00
Eugene Syromyatnikov
f71663b233 count: rewrite sort function selection using a table.
And provide some alternative names for the sorting options, as some
might be easier to remember than others.

* count.c (set_sortby): Replace nested if's with iteration over a table;
add aliases for the existing sorting options.
* strace.1.in (.SH OPTIONS) <-S>: Document new aliases.
2018-09-04 13:27:29 +02:00
Eugene Syromyatnikov
2b70434e3e strace.spec: use xz instead of gzip
As the source tarball is in xz format already, there is high chance
that xz is already required for the build environment.

* strace.spec.in (BuildRequires): Replace gzip with xz.
(%build): Comparess change logs with xz.
(%files): s/gz/xz.
2018-09-04 01:50:29 +02:00
Eugene Syromyatnikov
0685a353bf syscall: track syscall system time a bit more explicitly
Before, it relied on implicit assumptions that syscall-exit event is
right the next one after syscall-enter.  Also, there's some additional
debugging output that may be might help someone someday.

* count.c (count_syscall): Calculate system time as difference of tcp's
stime and ltime.
* defs.h (struct tcb): Add ltime, atime fields, remove dtime.
* strace.c (droptcb): Print total system time spent by a tcb.
(startup_tcb): Store initial system time in atime.
(next_event): Update stime directly.
* syscall.c (syscall_entering_finish): Store current system time in
tcb's ltime field.
(syscall_exiting_finish): Likewise.
2018-09-03 04:57:13 +02:00
Eugene Syromyatnikov
beece1ab43 fixup! delay: use parse_ts for parsing delay value 2018-09-03 00:41:41 +02:00
Eugene Syromyatnikov
8b2355f55f count: fix types in sorting comparison callbacks
* count.c (time_cmp. syscall_cmp): Change arguments type
to "const void *", Change indices cast type to "unsigned int *".
(count cmp): Likewise. Change count variables type to unsigned int.
(sortfun): Provide types of arguments.
2018-09-02 23:05:27 +02:00
Eugene Syromyatnikov
d58f4c7ee8 fixup! util.c: add parse_ts 2018-09-02 22:20:03 +02:00
Eugene Syromyatnikov
e30f3c2558 count: substract overhead per call
* count.c (zero_ts): New variable.
(count_syscall): Calculate the spent time in the wts variable, then add
it to cc->time.
(call_summary_pers): Do not perform overhead correction.
2018-09-02 22:07:07 +02:00
Eugene Syromyatnikov
0a21612184 count: use parse_ts for parsing overhead value
* count.c (set_overhead): Change argument type to const char *, call
parse_ts to parse it and set to overhead.
* defs.h (set_overhead): Update declaration.
* strace.c: (init) <case 'O'>: do not parse argument, pass optarg to
set_overhead call.
* tests/count.test (GENERIC, WALLCLOCK, HALFCLOCK): New variables with
expected patterns.
Add checks for the new -O syntax.
2018-09-02 21:56:47 +02:00
Eugene Syromyatnikov
1a28b6dba2 delay: use parse_ts for parsing delay value
* delay.c (fill_delay_data): Change intval argument to struct timespec
*val, assign val to ts.
* delay.h (fill_delay_data): Update function declaration.
* filter_qualify.c (parse_delay_token): Parse input with parse_ts,
supply the resulting struct timespec to fill_delay_data.
* tests/delay.c (check_): New function for providing diagnostic in case
of check failure.
(check_delay): Use it.
* tests/delay.test: Check new delay syntax.
2018-09-02 21:28:41 +02:00
Eugene Syromyatnikov
32e987b87a util.c: add parse_ts
* defs.h (parse_ts): New declaration.
* util.c (parse_ts): New function.
2018-09-02 20:04:27 +02:00
Eugene Syromyatnikov
7c7705fbc9 util: add ts_min and ts_max
* defs.h (ts_min, ts_max): New declarations.
* util.c (ts_min, ts_max): New functions.
2018-09-02 20:03:27 +02:00
Eugene Syromyatnikov
f73d6361c1 fixup! sockaddr: decode AX.25 socket addresses 2018-09-02 18:16:22 +02:00
Eugene Syromyatnikov
53faa8304c macros: add ROUNDUP macro
* macros.h (ROUNDUP): New macro.
2018-09-02 18:16:22 +02:00
Eugene Syromyatnikov
11c4fc6d99 linux: add arch definition for unaligned access support
* linux/arch_defs_.h [HAVE_ARCH_UNALIGNED_ACCESS]
(HAVE_ARCH_UNALIGNED_ACCESS): New macro constant, defined to 1.
* linux/alpha/arch_defs_.h (HAVE_ARCH_UNALIGNED_ACCESS): New macro
constant, defined to 0.
* linux/arm/arch_defs_.h: Likewise.
* linux/powerpc/arch_defs_.h: Likewise.
* linux/powerpc64/arch_defs_.h: Likewise.
* linux/sparc/arch_defs_.h: Likewise.
2018-09-01 23:41:34 +02:00
Eugene Syromyatnikov
8b58aa17fb tests: check stack unwinding for signals
* tests/stack-fcall-3.c: Call etpid or kill depending on argument,
store getpid result.
* tests/stack-fcall.c: Call f0(0) and f0(1).
* tests/strace-k-demangle.expected: Updat eexpected output.
* tests/strace-k.expected: Likewise.
* tests/strace-k.test: Update matching code.
2018-09-01 00:14:26 +02:00
Eugene Syromyatnikov
861f9fd7d8 Add xlat description structure.
Rename struct xlat to struct xlat_data and make struct  xlat an xlat descriptor
that contains various information about xlat. So far, it's type and number
of items.

As a result, xlookup/printxval now have enought information for handling
xlat depending on its type, so no *index/*_search APIs are needed.

* xlat.h (struct xlat_data): Rename from struct xlat.
(struct xlat): New type definition.
* xlat.c (xlat_search, printxval_sized, printxval_searchn_ex, xlat_idx,
printxval_indexn_ex, printxval_dispatch_ex, ): Remove.
(xlookup): Handle xlat_data based on xlat type.
(xlookup_le): New function, replaces xlat_search_eq_or_less and supports
all xlat types.
(sprintflags_ex, printflags_ex): Update.
* xlat/gen.sh (gen_header): Add handling for #sorted, generate new
struct xlat descriptor.
* defs.h (arp_hardware_types_size, ethernet_protocols_size,
inet_protocols_size, evdev_abs_size, xlat_search,
xlat_search_eq_or_less, xlat_idx, printxval_searchn_ex,
printxval_searchn, printxval_search, printxval_search_ex,
printxval_indexn_ex, printxval_indexn, printxval_index,
printxval_index_ex, printxval_dispatch_ex, printxval_dispatch): Remove.
(enum xlat_style_private_flag_bits): Remove PAF_INDEX_XLAT_SORTED_BIT
and PAF_INDEX_XLAT_VALUE_INDEXED_BIT.
(enum xlat_style_private_flag): Remove PAF_INDEX_XLAT_SORTED and
PAF_INDEX_XLAT_VALUE_INDEXED.
(print_array_ex): Remove index_xlat_size argument.
(xlookup_le): New declaration.
(printxval_ex): New macro.
* dyxlat.c (struct dyxlat): Remove used field (use xlat.size instead),
embed struct xlat, add pointer to struct xlat_data.
(MARK_END): Remove.
(dyxlat_alloc, dyxlat_free, dyxlat_get, dyxlat_add_pair): Update in
accordance with the structure changes.
* evdev.c (evdev_abs_size): Remove.
(keycode_ioctl): Use printxval instead of printxval_index.
(decode_bitset): Remove.
(decode_bitset_): Rename to decode_bitset, remove decode_nr_size and xt
arguments, call printxval instead of printxval_dispatch.
(bit_ioctl, evdev_read_ioctl): Do not pass xlat type to decode_bitset.
* print_fields.h (PRINT_FIELD_XVAL_SORTED_SIZED,
PRINT_FIELD_XVAL_INDEX): Remove.
* nlattr.h (struct decode_nla_xlat_opts): Remove xlat_size and xt
fields.
* nlattr.c (decode_nla_meminfo): do not pass
PAF_INDEX_XLAT_VALUE_INDEXED flag and netlink_sk_meminfo_indices size
in a print_array_ex call.
(decode_nla_xval): Call printxval_ex instead of printxval_dispatch_ex.
(decode_nla_ether_proto, decode_nla_ip_proto): Do not pass xlat_size and
xt fields in opts.
(decode_nla_flags): Remove XT_INDEXED unsupported warning.
* process.c (struct_user_offsets_data): Rename from
struct_user_offsets, change type to struct xlat_data[], remove XLAT_END.
(struct_user_offsets): New xlat description.
(print_user_offset_addr): Rewrite using xlookup_le.
* util.c (print_array_ex): Remove index_xlat_size argument, simply call
printxval_ex for index printing.
* aio.c (tprint_lio_opcode): Use printxval_ex instead of
printxval_indexn_ex.
* bpf.c: Use printxval instead of printxval_index; use PRINT_FIELD_XVAL
instead of PRINT_FIELD_XVAL_INDEX.
* bpf_filter.c (print_bpf_filter_code): Use printxval instead of
printxval_index.
* ioctl.c (evdev_decode_number): Use printxval instead of
printxval_indexn.
* kvm.c (kvm_ioctl_decode_check_extension): Use printxval instead of
printxval_index.
(kvm_ioctl_run_attach_auxstr): Use xlookup instead of xlat_idx.
* net.c: Use printxval instead of printxval_search/printxval_index, use
printxval_ex instead of printxval_searchn_ex.
* netlink_packet_diag.c (decode_packet_diag_msg): Use PRINT_FIELD_XVAL
instead of PRINT_FIELD_XVAL_SORTED_SIZED.
* netlink_smc_diag.c (decode_smc_diag_shutdown): Remove ARRSZ_PAIR
wrapper.
(decode_smc_diag_fallback): Use printxval_ex instead of
printxval_search_ex.
(decode_smc_diag_msg): Use PRINT_FIELD_XVAL instead of
PRINT_FIELD_XVAL_INDEX.
* print_statfs.c (print_statfs_type): Use printxval instead of
printxval_search.
* rtnl_cachereport.c (decode_nla_ipmra_msg_type,
decode_nla_ip6mra_msg_type): Remove ARRSZ_PAIR wrappers, xt fields.
* rtnl_link.c (decode_ifla_inet6_flags, decode_ifla_inet6_agm):
Likewise.
(decode_nla_tun_type, decode_ifla_xdp_attached): Remove xlat_size,
xt fields.
(decode_ifla_inet_conf, decode_ifla_inet6_conf, decode_ifla_inet6_stats,
decode_ifla_inet6_icmp6_stats): Remove PAF_INDEX_XLAT_VALUE_INDEXED flag
and ARRSZ_PAIR wrapper in print_array_ex calls.
(decode_ifinfomsg): Use PRINT_FIELD_XVAL instead of
PRINT_FIELD_XVAL_SORTED_SIZED.
* rtnl_route.c (decode_nla_rt_proto): Use printxval instead of
printxval_search.
* sock.c (print_ifreq): Use PRINT_FIELD_XVAL instead of
PRINT_FIELD_XVAL_SORTED_SIZED.
* sockaddr.c (print_sockaddr_data_ll, print_sockaddr_data_bt,
print_sockaddr): Use printxval instead of printxval_search and
printxval_index.
* time.c (getitimer, osf_getitimer, setitimer, printclockname): Use
printxval instead of printxval_index.
(do_adjtimex): Use xlookup instead of xlat_idx.
* v4l2.c (print_v4l2_cid): Use xlookup instead of xlat_search.
(print_v4l2_cid): Use xlookup_le instead of xlat_search_eq_or_less.
* tests/btrfs.c: Update xlat handling, use struct xlat_data instead of
struct xlat for XLAT() arrays.
* tests/ioctl_block.c: Likewise.
* tests/ioctl_rtc.c: Likewise.
* tests/printflags.c: Likewise.
* tests/printxval.c: Likewise.
* tests/prlimit64.c: Likewise.
* tests/setrlimit.c: Likewise.
* tests/socketcall.c: Likewise.
* tests/xgetrlimit.c: Likewise.
* tests/xstatfsx.c: Likewise.
* xlat/af_packet_versions.in: Add #value_indexed.
* xlat/arp_hardware_types.in: Add #sorted.
* xlat/ax25_protocols.in: Likewise.
* xlat/bluetooth_l2_cid.in: Likewise.
* xlat/bluetooth_l2_psm.in: Likewise.
* xlat/ethernet_protocols.in: Likewise.
* xlat/evdev_ff_types.in: Likewise.
* xlat/fsmagic.in: Likewise.
* xlat/hw_breakpoint_type.in: Likewise.
* xlat/iffflags.in: Likewise.
* xlat/inet6_if_flags.in: Likewise.
* xlat/inet_protocols.in: Likewise.
* xlat/msgctl_flags.in: Likewise.
* xlat/perf_hw_cache_id.in: Likewise.
* xlat/perf_hw_cache_op_id.in: Likewise.
* xlat/perf_hw_cache_op_result_id.in: Likewise.
* xlat/perf_hw_id.in: Likewise.
* xlat/perf_sw_ids.in: Likewise.
* xlat/perf_type_id.in: Likewise.
* xlat/routing_protocols.in: Likewise.
* xlat/semctl_flags.in: Likewise.
* xlat/shmctl_flags.in: Likewise.
* xlat/smc_decl_codes.in: Likewise.
* xlat/sock_ax25_options.in: Likewise.
* xlat/sock_bluetooth_options.in: Likewise.
* xlat/sock_dccp_options.in: Likewise.
* xlat/sock_tipc_options.in: Likewise.
* xlat/socketlayers.in: Likewise.
* xlat/v4l2_control_classes.in: Likewise.
* xlat/v4l2_pix_fmts.in: Likewise.
* xlat/v4l2_sdr_fmts.in: Likewise.
2018-08-31 23:05:03 +02:00
Eugene Syromyatnikov
dea7b2d055 xlat: provide fallback definitions for open_access_modes constants
* xlat/open_access_modes.in: Add fallback values.
2018-08-31 21:11:42 +02:00
Eugene Syromyatnikov
b3766e3e01 process: honor xlat style in print_user_offset_addr
* process.c (print_user_offset_addr): Print in accordance with xlat
verbosity setting.
2018-08-31 21:11:42 +02:00
Eugene Syromyatnikov
6ee33f6452 time: add xlat styles support to printclockname
* time.c (printclockname): Respectl xlat_verbosity.
2018-08-31 21:11:42 +02:00
Eugene Syromyatnikov
e8f456d4e1 open: implement sprint_open_modes using sprintflags_ex
* defs.h (sprintflags_ex): Add "sep" argument.
(sprintflags): Pass '\0' in "sep" argument.
* open.c (sprint_open_modes): Use sprintflags_ex for printing
open_mode_flags.
* xlat.c (sprintflags_ex): Add "sep" argument, use it as initial
separator (if not nul).
2018-08-31 21:11:42 +02:00
Eugene Syromyatnikov
15090ba907 rtnl_link.c: decode hardware addresses
* rtnl_link.c (decode_nla_hwaddr): New function.
(ifinfomsg_nla_decoders) <IFLA_ADDRESS, IFLA_BROADCAST>: Use
decode_nla_hwaddr.
* decode_ifinfomsg: Pass ifinfo as opaque data.
2018-08-31 21:11:42 +02:00
Eugene Syromyatnikov
aaab15665e perf: rewrite print_perf_event_attr using PRINT_FIELD_* macros
* perf.c: Include "print_fields.h".
(print_perf_event_attr): Use PRINT_FIELD_* macros.
2018-08-31 21:11:42 +02:00
Eugene Syromyatnikov
398c49b48a Generalise hardware address printing
* defs.h [!MAX_ADDR_LEN] (MAX_ADDR_LEN): New macro.
(sprint_hwaddr): New declaration.
(print_hwaddr): New inline function, a wrapper for sprint_hwaddr.
* print_fields.h (PRINT_FIELD_HWADDR_SZ): New macro.
* print_mac.c: Include "xlat/arp_hardware_types.h" under
XLAT_MACROS_ONLY.
[!MAX_ADDR_LEN] (MAX_ADDR_LEN): Remove.
(sprint_hwaddr): New function.
* sock.c (print_ifreq) <SIOCSIFHWADDR, SIOCGIFHWADDR>: Print hardware
address using PRINT_FIELD_HWADDR_SZ.
2018-08-31 21:11:42 +02:00
Eugene Syromyatnikov
2e9d851346 netlink: avoid parsing data that has been just retrieved
get_fd_nl_family did a weird thing: it parsed netlink socket address in
order to get netlink proto, but the address itself is constructed based
on the netlink proto number in the first place. Avoid doing so by
stashing information about netlink protocol right after nul byte of the
sockaddress and providing it on request.

* socketutils.c (cache_entry): Add has_data field.
(cache_inode_details): Add data argument, store it in has_data field.
(get_sockdata_by_inode_cached): New function.
(inet_parse_response, unix_parse_response, packet_parse_response):
Pass false in data argument of cache_inode_details call.
(netlink_parse_response): Append ndiag_protocol value to details string,
pass true to cache_inode_details call.
(unix_get, inet_get, packet_get): Add data argument, return NULL
if called with data == true.
(netlink_get): Add data argument, call get_sockdata_by_inode_cached
instead of get_sockaddr_by_inode_cached if called with data == true.
(protocols): Add data arguments to the type definition of the get field.
(get_sockaddr_by_inode_uncached): Add data argument, pass
it to protocols->get.
(print_sockaddr_by_inode_uncached): Call get_sockaddr_by_inode_uncached
with data == false.
(get_sockaddr_by_inode): Call get_sockaddr_by_inode_uncached with
data == false;
(get_sockdata_by_inode): New function.
* defs.h (get_sockdata_by_inode): New declaration.
* netlink.c (get_fd_nl_family): Use get_sockdata_by_inode.
2018-08-31 21:11:42 +02:00
Eugene Syromyatnikov
653abe7a9d xlat: update resources
* xlat/resources.in: declare as #value indexed. Provide fallback values.
(RLIMIT_VMEM): Remove.
2018-08-31 21:11:42 +02:00
Eugene Syromyatnikov
b821526643 futex: recoginise FUTEX_BITSET_MATCH_ANY bitmask
* xlat/futexbitset.in: New file.
* futex.c: Include "xlat/futexbitset.h".
(futex) <FUTEX_WAIT_BITSET, FUTEX_WAKE_BITSET>: Decode val3 using
futexbitset xlat.
* tests/futex.c: Add checks for 0xffffffff bitset mask printing.

Closes: Linux commit v4.16-rc1~166^2^2~2
2018-08-31 21:11:42 +02:00
Eugene Syromyatnikov
a010a633cd Print stack traces on signals
I don't know why it hasn't been done earlier.

* strace.c [ENABLE_STACKTRACE] (print_stopped): Call unwind_tcb_print
if stack trace printing is enabled.
2018-08-31 21:11:42 +02:00
Eugene Syromyatnikov
3960fea7f1 [wip] NFNL_SUBSYS_CTNETLINK subsystem decoding support 2018-08-31 21:11:42 +02:00
Eugene Syromyatnikov
8de3d10e71 nlattr: ignore nla_type flags when selecting nlattre decoder
* nlattr.c (decode_nlattr_with_data): Apply NLA_TYPE_MASK to nla_type
before decoder selection.
2018-08-31 19:33:29 +02:00