summaryrefslogtreecommitdiff
path: root/desc.c
Commit message (Collapse)AuthorAge
* Use XLAT_END macroDmitry V. Levin2014-02-05
| | | | | Automatically update all xlat structures using the following sed regexp: s/^[[:space:]]*{[[:space:]]*0[[:space:]]*,[[:space:]]*NULL[[:space:]]*,\?[[:space:]]*}[[:space:]]*,\?[[:space:]]*/\tXLAT_END/
* Use XLAT macroDmitry V. Levin2014-02-05
| | | | | | Automatically convert all xlat structures to XLAT form using the following sed regexp: s/^[[:space:]]*{[[:space:]]*\([^",}[:space:]]\+\)[[:space:]]*,[[:space:]]*"\1",\?[[:space:]]*}[[:space:]]*/\tXLAT(\1)/
* Define printflock64 only if it is referenced by other codeDmitry V. Levin2013-11-12
| | | | | | | | | * configure.ac (AC_CHECK_TYPES): Add struct flock64. * desc.c (HAVE_F_SETLK64, HAVE_F_SETLKW64, HAVE_F_GETLK64): New macros. [!HAVE_STRUCT_FLOCK64] (struct flock64): Define. (printflock64): Define only if referenced by other code. (sys_fcntl): Handle F_FREESP64, F_SETLK64, F_SETLKW64, and F_GETLK64 iff these constants are defined and differ from their non-64bit versions.
* Move io_* syscalls decoding to a separate fileDmitry V. Levin2013-11-11
| | | | | | | * desc.c (sys_io_setup, sys_io_destroy, sys_io_submit, sys_io_cancel, sys_io_getevents, declarations from libaio.h): Move to ... * aio.c: new file. * Makefile.am (strace_SOURCES): Add aio.c.
* Stop using external libaio.h.Denys Vlasenko2013-11-11
| | | | | | | | | | | | | | | This change incorporates a partial copy instead of using external libaio.h. Why? Because we want to properly decode 32-bit aio calls by 64-bit strace. For that, we need more definitions than libaio.h provides. (These defs are not done yet, but will eventually be done). Keeping our local 32-bit compat defs in sync with libaio.h _without seeing libaio structs_ is hard/more bug prone. A smaller benefit is that we don't need libaio installed. Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
* sys_io_submit: simplify iocb_cmd_lookup() helper.Denys Vlasenko2013-11-11
| | | | | | | | | | | | | This helper returns two values (a string and an enum). The caller prints the string. It's simpler to just print the string in the caller itself. This eliminates "return by reference" and more importantly, an intermediate static string buffer for the string result. Since function of the helper is different now, it is renamed to tprint_lio_opcode(). Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
* sys_io_submit: stop traversing iocb vector after first failure.Denys Vlasenko2013-11-11
| | | | | | | | | The program may use a very large nr but supply either outright invalid iocbpp[], or one with far fewer elements than nr. We used to try reading iocbpp[i] until i == nr. With this change, we stop on the first failure. Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
* Fix select decoding on e.g. 32-bit ppc process by 64-bit strace.Denys Vlasenko2013-11-09
| | | | | | | | | | Added next_set_bit() function which finds the next set bit, properly taking into account word size of the traced process. Use it in decode_select() instead of fd_isset(). Also, properly round fdsize up to word size of traced process, not to strace's word size. Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
* Speed up and explain fd_isset()Denys Vlasenko2013-11-06
| | | | Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
* Fix select decoding for glibc in _FORTIFY_SOURCE modeDmitry V. Levin2013-11-05
| | | | | | | | | | | glibc in _FORTIFY_SOURCE mode raises SIGABRT when descriptor greater or equal to FD_SETSIZE is passed to FD_ISSET. Select family syscalls, however, can legitimately accept such descriptors. To overcome this limitation, we have to replace FD_ISSET with an equivalent that imposes no such restrictions. * desc.c (fd_isset): New function. (decode_select): Use it instead of FD_ISSET.
* More select decoding fixesDmitry V. Levin2013-11-05
| | | | | | | | * desc.c (decode_select): Actually print arg[0] as int on entering syscall. When arg[0] is negative, do not attempt to fetch and decode descriptor sets on entering syscall, kernel will reject it anyway. On exiting syscall, stop checking descriptor sets as soon as all returned descriptors are found.
* Truncate arg[0] to int in select decoding.Denys Vlasenko2013-11-05
| | | | | | This matches kernel's behavior. Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
* Fix select decoding with bogus (huge or negative) nfds.Dr. David Alan Gilbert2013-11-05
| | | | | | | | | | | | We used to allocate and fetch bit arrays using a sanitized length, but then iterate over them with "j < arg[0]" condition, where arg[0] is not sanitized. This segfaults if arg[0] is huge or negative. This change fixes this. Add test/select.c to capture the case. Signed-off-by: Dr. David Alan Gilbert <dave@treblig.org> Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
* Add compat support for sys_pselect6Denys Vlasenko2013-07-18
| | | | Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
* Fix sigset printing via print_sigset().Denys Vlasenko2013-07-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace print_sigset() with print_sigset_addr_len(), which takes not only addr, but also len parameter. This allows us to drop "do we need to print RT signals?" parameter, and this fixes RT signals printing in many syscalls. sys_epoll_pwait: print RT signals too, print sigmask size argument. sys_sigprocmask: print_sigset -> print_sigset_addr_len(current_wordsize), no change in functionality. sys_sigpending: use print_sigset_addr_len(current_wordsize) instead of open-coding it. sys_rt_sigprocmask: use print_sigset_addr_len instead of open-coding it. sys_rt_sigpending: ditto. sys_rt_sigsuspend: ditto. sys_rt_sigtimedwait: ditto. do_signalfd: print_sigset -> print_sigset_addr_len. This fixes RT signals printing (wasn't showing them before). sys_ppoll: ditto. copy_sigset_len() is folded into its only user, print_sigset_addr_len(), and copy_sigset() is gone. While at it, checked kernel sources and noted where kernel enforces sigset_size == NSIG / 8 (== sizeof(kernel_sigset_t)), and where it allows word-sized sigset_size ([rt_]sigpending). Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
* x32: fix build regressions introduced by commit v4.7-96-g8435d67Dmitry V. Levin2013-05-01
| | | | | | | | | | | | | * desc.c (printflock) [X32]: Add special handling required for this architecture with sizeof(long) < sizeof(off_t). * file.c [X32] (struct stat64): Add __attribute__((packed)). [X32] (HAVE_STAT64): Define. (printstat) [X32]: Redirect to printstat64. (printstat64) [X32]: Use "struct stat" instead of "struct stat64". [X32] (realprintstat64): Rename to printstat64_x32. (sys_stat64, sys_fstat64) [X32]: Remove second definitions of these functions. Call printstat64_x32 instead of printstat64 * linux/x32/syscallent.h: Fix handlers for truncate and ftruncate.
* Print io_submit() offsets in decimalZev Weiss2013-03-31
| | | | | | | | | This makes output formatting more consistent with pread()/pwrite(), which print their offset parameters in decimal. * desc.c (sys_io_submit): Change offset output format from %llx to %lld. Signed-off-by: Zev Weiss <zev@bewilderbeest.net>
* Fix build with older versions of libaio.hDmitry V. Levin2013-03-18
| | | | | | | | * configure.ac: When libaio.h is available, check for struct iocb.u.c.flags, IO_CMD_PWRITE and IO_CMD_PWRITEV. * desc.c (print_common_flags): Check for HAVE_STRUCT_IOCB_U_C_FLAGS. (sys_io_submit): Check for HAVE_DECL_IO_CMD_PWRITE and HAVE_DECL_IO_CMD_PWRITEV.
* Fix io_submit decodingDmitry V. Levin2013-03-18
| | | | | * desc.c (print_common_flags, sys_io_submit): Add missing ", " to SUB_COMMON output, remove extra ", " from SUB_VECTOR output.
* Remove code which supports systems with long long off_t.Denys Vlasenko2013-02-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While looking at mmap mess, did experimenting in order to figure out what gets used when. Tried building armv4tl, armv5l, armv6l, mips, mipsel, i686, x86_64 and none of they have long long off_t, which isn't suprprising: we aren't using glibc defines which enable that. Moreover, we SHOULD NOT use off_t in syscall decode! Its size depends on libc, not on arch! I.e. it is essentially unpredictable and can even in theory vary on the same arch with different libc. We should use longs or long longs, in a way which matches architectural ABI for the given syscall. There are usually *at most* two permutations, no need to add yet another variable (sizeof(off_t)) to the mix. This change removes almost all HAVE_LONG_LONG_OFF_T conditionals, which will reveal further possible simplifications. * mem.c: Remove code conditional on HAVE_LONG_LONG_OFF_T. As a result, never remap sys_mmap64 to sys_mmap. (print_mmap): Compile unconditionally. (sys_old_mmap): Compile unconditionally. (sys_mmap): Compile unconditionally. * io.c (sys_sendfile): Add a FIXME comment. * file.c: Remove code conditional on HAVE_LONG_LONG_OFF_T. As a result, never remap sys_*stat64 to sys_*stat etc. (sys_truncate): Compile unconditionally. (realprintstat): Likewise. (sys_stat): Likewise. (sys_fstat): Likewise. (sys_lstat): Likewise. * desc.c (printflock): Likewise. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* Merge two identical tablesDenys Vlasenko2013-02-17
| | | | | | | | | | * defs.h: Declare whence_codes[]. * desc.c: Delete static whence[]. (printflock[64]): Use whence_codes. * file.c: Make whence_codes[] non-static. Add SEEK_DATA and SEEK_HOLE to them. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* Dying suddenly with abort() is rude, avoid if possibleDenys Vlasenko2013-02-08
| | | | | | | | * file.c (sys_utime): Don't call abort() if wordsize is strange. Instead, warn user about it. * desc.c (printflock): Use the same message string as in sys_utime. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* Improve perf_event_open argument decodingBen Noordhuis2013-02-05
| | | | | | | | | | | | * configure.ac (AC_CHECK_HEADERS): Add linux/perf_event.h. * desc.c [HAVE_LINUX_PERF_EVENT_H]: Include <linux/perf_event.h>. (perf_event_open_flags): New xlat structure. (sys_perf_event_open): New function. * linux/dummy.h (sys_perf_event_open): Remove. * linux/syscall.h (sys_perf_event_open): New prototype. Signed-off-by: Ben Noordhuis <info@bnoordhuis.nl> Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
* Stop using %h[h]u format specifiersDenys Vlasenko2012-04-16
| | | | | | | | | | | This is needed for simplified printf, and reduces code size a bit. * block.c (block_ioctl): Cast the value to unsinged and use %u instead of using %hu. * desc.c (sys_io_cancel): Likewise. * resource.c (sys_sysinfo): Likewise. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* Optimize code if we have only one personalityDenys Vlasenko2012-03-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On i386: text data bss dec hex filename 238025 672 18980 257677 3ee8d strace.before 237389 704 18944 257037 3ec0d strace * defs.h: Define PERSONALITY0_WORDSIZE as sizeof(long) if not defined. Introduce new define, current_wordsize as (personality_wordsize[current_personality]). Make set_personality() no-op, current_personality constant zero, current_wordsize as PERSONALITY0_WORDSIZE if we have only one personality. * count.c (call_summary): Use current_wordsize instead of personality_wordsize[current_personality]. * desc.c (printflock): Likewise. * file.c (sys_utime): Likewise. * io.c (tprint_iov): Likewise. * process.c (printargv): Likewise. * resource.c (decode_rlimit): Likewise. * signal.c (sys_kill): Likewise. (sys_rt_sigaction): Likewise. * time.c (sprinttv): Likewise. (sprint_timespec): Likewise. (printitv_bitness): Likewise. (tprint_timex): Likewise. (printsigevent): Likewise. * util.c (dumpiov): Likewise. (umoven): Likewise. (umovestr): Likewise. * syscall.c: Initialize sysent to sysent0 etc. Make current_personality, personality_wordsize[], set_personality() conditional on SUPPORTED_PERSONALITIES > 1. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* Indentation and whitespace fixes. No code changes.Denys Vlasenko2012-03-17
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* Tidy up includes and copyright notices, fix indentationDenys Vlasenko2012-03-16
| | | | | | | | | | | | | | | The files not mentioned in changelog below had only copyright notices fixes and indentation fixes. * defs.h: Include <stdint.h> and <inttypes.h>. * file.c: Do not include <inttypes.h>. Move struct kernel_dirent declaration below top include block. * block.c: Do not include <stdint.h> and <inttypes.h>. * quota.c: Likewise. * desc.c: Likewise. * signal.c: Likewise. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* Alias a few more syscall printing functionsDenys Vlasenko2012-02-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | text data bss dec hex filename 237384 672 19044 257100 3ec4c strace.before 236448 672 19044 256164 3e8a4 strace * defs.h: Declare new functions printargs_lu(), printargs_ld() which simply print syscall all args as unsigned or signed longs. * desc.c (sys_epoll_create): Call printargs_ld() instead of open-coding it. * linux/syscall.h: Remove declarations of the following functions: sys_alarm, sys_getresgid, sys_getsid, sys_nice, sys_setgid, sys_setpgid, sys_setpgrp, sys_setregid, sys_setresgid. * process.c (sys_setgid): Delete this function: now aliased to sys_setuid(). (sys_getresgid): Delete this function: now aliased to sys_getresuid(). (sys_setregid): Delete this function: now aliased to sys_setreuid(). (sys_setresgid): Delete this function: now aliased to sys_setresuid(). (sys_setpgrp): Delete this function: now aliased to printargs_lu(). (sys_getsid): Likewise. (sys_setpgid): Likewise. (sys_alarm): Likewise. (sys_getpgrp): Delete this function: was unused - was already shadowed by a define in linux/dummy.h. (sys_setsid): Likewise. (sys_getpgid): Likewise. * resource.c (sys_nice): Delete this function: now aliased to printargs_ld(). * linux/dummy.h: Define new aliases (see above for the list). * syscall.c (printargs_lu): New function. (printargs_ld): New function. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* Style fixes, no code changesDenys Vlasenko2012-02-27
| | | | | | | | | | | * desc.c (sys_io_getevents): Indentation fix. * file.c (sys_xstat): Remove space after function name. (decode_mknod): Indentation fix. * net.c (printsockopt): Indentation fix. * process.c (unalignctl_string): Indentation fix. (sys_sched_getscheduler): Remove space after ! operator. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* Compress blank linesDmitry V. Levin2012-02-25
| | | | | | Suppress repeated empty lines left after automated code removal. This change was made by filtering every source code file through "cat -s".
* Cleanup after non-Linux code removal.Denys Vlasenko2012-02-25
| | | | | | | | | Conditions such as defined(LINUX) are always true now, defined(FREEBSD) etc are always false. When if directive has them as subexpressions, it can be simplified. Another trivial changes here are fixes for directive indentation. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* Automated removal of non-Linux codeDenys Vlasenko2012-02-25
| | | | | | | | | | This change is generated by running every source through the following command: unifdef -DLINUX -Dlinux -USUNOS4 -USVR4 -UUNIXWARE -UFREEBSD -USUNOS4_KERNEL_ARCH_KLUDGE -UHAVE_MP_PROCFS -UHAVE_POLLABLE_PROCFS -UHAVE_PR_SYSCALL -UUSE_PROCFS file.c Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* Eliminate code duplication in time printing, reduce a few static buffersDenys Vlasenko2012-01-20
| | | | | | | | | | | | | | | | | | | | | | text data bss dec hex filename 238454 664 28772 267890 41672 strace.before 238106 664 28676 267446 414b6 strace * defs.h: Add TIMESPEC_TEXT_BUFSIZE and TIMEVAL_TEXT_BUFSIZE defines. Add 'int special' parameter to sprinttv(). * time.c (sprinttv): Add 'int special' parameter, and use it similarly to 'int special' parameter of printtv_bitness(). (printtv_bitness): Use sprinttv() instead of duplicating its code. (print_timespec): Use sprint_timespec() instead of duplicating its code. * desc.c (decode_select): Use TIMEVAL_TEXT_BUFSIZE instead of 128 when checking remaining buffer size. * net.c (sys_recvmsg): Use TIMESPEC_TEXT_BUFSIZE instead of 128 for static buffer size. * stream.c (decode_poll): Use TIMESPEC_TEXT_BUFSIZE instead of 128 when checking remaining buffer size. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* Remove redundant parsersDmitry V. Levin2011-11-28
| | | | | | | | | | | | | | | | | | * desc.c (sys_dup): Remove. * file.c (sys_pivotroot, sys_rmdir, sys_fchdir, sys_chroot, sys_fchroot, sys_unlink, sys_symlink, sys_rename): Remove. * linux/syscall.h (sys_chroot, sys_dup, sys_fchdir, sys_pivotroot, sys_rename, sys_rmdir, sys_symlink, sys_unlink): Remove. * linux/dummy.h: Add aliases for sys_chroot, sys_dup, sys_pivotroot, sys_rename, sys_rmdir, sys_symlink, sys_unlink. * pathtrace.c (pathtrace_match): Update. * sunos4/dummy.h: Add aliases for sys_chroot, sys_dup, sys_fchdir, sys_fchroot, sys_rename, sys_rmdir, sys_symlink, sys_unlink. * svr4/dummy.h: Likewise. * sunos4/syscall.h (sys_chroot, sys_dup, sys_fchdir, sys_fchroot, sys_rename, sys_rmdir, sys_symlink, sys_unlink): Remove. * svr4/syscall.h (sys_chroot, sys_dup, sys_fchdir, sys_fchroot, sys_rename, sys_rmdir, sys_symlink, sys_unlink): Remove.
* sys_epoll_create1: decode flag arguments correctlyMike Frysinger2011-10-14
| | | | | | | | * desc.c (epollflags): Define. (sys_epoll_create1): Use epollflags to printflags. Change "O" to "EPOLL". Reported-by: Марк Коренберг <socketpair@gmail.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Fix epoll_wait and epoll_pwait decodingDmitry V. Levin2011-10-11
| | | | | | | * desc.c (epoll_wait_common): Print "maxevents" and "timeout" arguments as integers. Reported-by: Марк Коренберг <socketpair@gmail.com>
* Decode EPOLLRDHUPDmitry V. Levin2011-10-11
| | | | | | * desc.c (epollevents): Add EPOLLRDHUP. Reported-by: Марк Коренберг <socketpair@gmail.com>
* Fix compile failure introduced by last commitDenys Vlasenko2011-09-01
| | | | | | * desc.c (decode_select): Fix double definition of nfds. Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
* Roll back "die on malloc failure" behaviour a bitDenys Vlasenko2011-09-01
| | | | | | | | | | | | | | | | | | After recent change, select(2^31-1, NULL, NULL, NULL) would make strace exit. This change caps fdsize so that it is always in [0, 1025*1024], IOW: we will try to allocate at most 1 megabyte, which in practice will almost always work, unlike malloc(2Gig). * desc.c (decode_select): Cap fdsize to 1024*1024. * pathtrace.c (pathtrace_match): Cap fdsize to 1024*1024. * file.c (sys_getdents): Cap len to 1024*1024. (sys_getdents64): Cap len to 1024*1024. * util.c (dumpiov): Refuse to process iov with more than 1024*1024 elements. Don't die on malloc failure. (dumpstr): Don't die on malloc failure. Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
* * desc.c (decode_select): Set tcp->auxstr as late as possible.Denys Vlasenko2011-09-01
| | | | Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
* Use tprints with literal strings, it may be faster than tprintfDenys Vlasenko2011-09-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | * bjm.c: Replace tprintf("str") with tprints("str"). * block.c: Likewise. * desc.c: Likewise. * file.c: Likewise. * io.c: Likewise. * ipc.c: Likewise. * mem.c: Likewise. * net.c: Likewise. * proc.c: Likewise. * process.c: Likewise. * quota.c: Likewise. * resource.c: Likewise. * scsi.c: Likewise. * signal.c: Likewise. * sock.c: Likewise. * strace.c: Likewise. * stream.c: Likewise. * syscall.c: Likewise. * system.c: Likewise. * term.c: Likewise. * time.c: Likewise. * util.c: Likewise. Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
* Fix "format not a string literal" warning caused by tprintf(str)Denys Vlasenko2011-09-01
| | | | | | | | | | | | | | | | * defs.h: Declare tprints(). * strace.c: Define tprints(). (tabto): Use tprints(str), since tprintf(str) was throwing a warning. * desc.c: Use tprints(str) instead of tprintf("%s", str). * file.c: Likewise. * io.c: Likewise. * net.c: Likewise. * process.c: Likewise. * signal.c: Likewise. * syscall.c: Likewise. * util.c: Likewise. Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
* Make out-of-memory handling more uniformDenys Vlasenko2011-08-31
| | | | | | | | | | | | | | | | | | | | | | | | | | This fixes one real bug in dumpstr(). * defs.h: Declare die_out_of_memory(). * strace.c (die_out_of_memory): New function. (strace_popen): If allocation fails, call die_out_of_memory(). (main): Likewise. (expand_tcbtab): Likewise. (rebuild_pollv): Likewise. * count.c (count_syscall): Likewise. (call_summary_pers): Likewise. * desc.c (decode_select): Likewise. * file.c (sys_getdents): Likewise. (sys_getdents64): Likewise. (sys_getdirentries): Likewise. * pathtrace.c (pathtrace_match): Likewise. * syscall.c (qualify): Likewise. * util.c (printstr): Likewise. (dumpiov): Likewise. (dumpstr): Likewise. (fixvfork): Likewise. * mem.c (sys_mincore): Don't check free() parameter for NULL. Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
* Optimization: eliminate all remaining usages of strcat()Denys Vlasenko2011-08-31
| | | | | | | | | | | | | After this change, we don't use strcat() anywhere. * defs.h: Change sprinttv() return type to char *. * time.c (sprinttv): Return pointer past last stored char. * desc.c (decode_select): Change printing logic in order to eliminate usage of strcat() - use stpcpy(), *outptr++ = ch, sprintf() instead. Also reduce usage of strlen(). * stream.c (decode_poll): Likewise. Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
* Improve code readability by avoiding assignments inside if()Denys Vlasenko2011-08-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | * desc.c (decode_select): Move assignment out of if() condition. * file.c (sprinttime): Likewise. (sys_getdirentries): Likewise. * io.c (sys_ioctl): Likewise. * strace.c (test_ptrace_setoptions_followfork): Likewise. (main): Likewise. (proc_open): Likewise. (detach): Likewise. (proc_poll): Likewise. (trace): Likewise. * syscall.c (qualify): Likewise. (sys_indir): Likewise. * test/procpollable.c (main): Likewise. * test/sfd.c (main): Likewise. * time.c (printtv_bitness): Likewise. (sprinttv): Likewise. (print_timespec): Likewise. (void sprint_timespec): Likewise. (printitv_bitness): Likewise. * util.c (dumpstr): Likewise. (umovestr): Likewise. (fixvfork): Likewise. Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
* Optimize iocb_cmd_lookupDenys Vlasenko2011-08-23
| | | | | | | * desc.c (iocb_cmd_lookup): Make command table constant. Reduce size of static char buffer. Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
* Whitespace cleanups. No code changes.Denys Vlasenko2011-06-22
| | | | | | | | | | | | | | | | | | * count.c: Place opening curly brace after if (), not on the next line. Almost all strace code alredy uses this style. * desc.c: Likewise. * file.c: Likewise. * net.c: Likewise. * pathtrace.c: Likewise. * process.c: Likewise. * quota.c: Likewise. * signal.c: Likewise. * strace.c: Likewise. * syscall.c: Likewise. * time.c: Likewise. Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
* Fix build when libaio-devel is not availableDmitry V. Levin2011-06-21
| | | | | | | * desc.c: Do not compile code that uses struct iocb unless HAVE_LIBAIO_H is set. Reported-by: Denys Vlasenko <dvlasenk@redhat.com>
* Enhance io_submit() decodingAndi Kleen2011-06-13
| | | | | | | | | strace didn't decode important fields in the iocb passed to io_submit. This patch changes the code to dump them all. Also it prefixes the fields with names to make it easier to read. * desc.c (iocb_cmd_lookup, print_common_flags): New functions. (sys_io_submit): New iocb decoder.
* Whitespace cleanups. no code changes.Denys Vlasenko2011-06-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * bjm.c: Fix tabulation (such as extra spaces before tabs), convert punctuation where it deviates from prevalent form elsewhere in strace code, convert sizeof and offsetof where it deviates from from prevalent form, remove space between function/macro/array names and (parameters) or [index], add space between "if" and (condition), correct non-standard or wrong indentaion. * defs.h: Likewise * desc.c: Likewise * file.c: Likewise * ipc.c: Likewise * linux/arm/syscallent.h: Likewise * linux/avr32/syscallent.h: Likewise * linux/hppa/syscallent.h: Likewise * linux/i386/syscallent.h: Likewise * linux/ioctlsort.c: Likewise * linux/m68k/syscallent.h: Likewise * linux/microblaze/syscallent.h: Likewise * linux/powerpc/syscallent.h: Likewise * linux/s390/syscallent.h: Likewise * linux/s390x/syscallent.h: Likewise * linux/sh/syscallent.h: Likewise * linux/sh64/syscallent.h: Likewise * linux/tile/syscallent.h: Likewise * linux/x86_64/syscallent.h: Likewise * mem.c: Likewise * net.c: Likewise * pathtrace.c: Likewise * process.c: Likewise * signal.c: Likewise * sock.c: Likewise * strace.c: Likewise * stream.c: Likewise * sunos4/syscall.h: Likewise * sunos4/syscallent.h: Likewise * svr4/syscall.h: Likewise * svr4/syscallent.h: Likewise * syscall.c: Likewise * system.c: Likewise * test/childthread.c: Likewise * test/leaderkill.c: Likewise * test/skodic.c: Likewise * time.c: Likewise * util.c: Likewise Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>