2008-09-12 Tomas Pospisek Jan Kratochvil * strace.1 (DESCRIPTION): New description of unfinished system calls and system calls restarting. 2008-09-03 Dmitry V. Levin * desc.c (sys_fcntl): Do not initialize auxstr for failed syscall. * process.c (sys_fork, sys_rfork) [USE_PROCFS]: Likewise. * signal.c (sys_signal): Likewise. * stream.c (internal_stream_ioctl): Likewise. * time.c (sys_adjtimex): Likewise. * syscall.c (trace_syscall): If RVAL_STR is set, then print auxstr for failed syscall as well. * syscall.c (is_restart_error): New function. * defs.h (is_restart_error): Declare it. * linux/dummy.h (sys_nanosleep): Uncouple from sys_adjtime(). * time.c (sys_nanosleep): New function, based on is_restart_error(). * process.c (sys_prctl): Decode PR_SET_PDEATHSIG, PR_GET_PDEATHSIG, PR_SET_DUMPABLE, PR_GET_DUMPABLE, PR_SET_KEEPCAPS, PR_GET_KEEPCAPS. Fix PR_GET_UNALIGN decoder. (prctl_options): Add more constants. * linux/syscallent.h: Use sys_prctl() decoder for "prctl" syscall. * linux/alpha/syscallent.h: Likewise. * linux/arm/syscallent.h: Likewise. * linux/m68k/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/x86_64/syscallent.h: Likewise. 2008-09-02 Dmitry V. Levin * linux/x86_64/syscallent.h: Fix syscall numbers for "tee" and "sync_file_range". From Fernando Luis Vazquez Cao 2008-08-28 Roland McGrath * strace.1 (BUGS): New section, mention SIGTRAP interference. * strace.spec (%ifarch %{strace64_arches}): Use cp -p instead of ln for %{rhel} < 6. * configure.ac, NEWS: Version 4.5.18. * strace.spec: 4.5.18-1. 2008-08-24 Roland McGrath * linux/syscall.h (SYS_socket_subcall et al, SYS_ipc_subcall et al): Don't define these if [__ARM_EABI__]. Reported by Johannes Stezenbach . * syscall.c (trace_syscall): Conditionalize on [SYS_socket_subcall] and [SYS_ipc_subcall] individually. * linux/powerpc/syscallent.h: Handle subpage_prot. * mem.c [LINUX && POWERPC] (sys_subpage_prot): New function. * linux/syscall.h [POWERPC]: Declare it. From Simon Murray . * mem.c (mmap_prot): Handle PROT_SAO. From Simon Murray . * mem.c (madvise_flags): Typo fixes. Rename to madvise_cmds. (sys_madvise): Use printxval, not printflags. Reported by Rajeev V. Pillai . 2008-08-19 Roland McGrath * signal.c (sys_sigaction, sys_rt_sigaction): Don't omit the rest of the struct after sa_handler is a known constant. Some sa_flags bits have meaning even for SIG_IGN/SIG_DFL. 2008-08-06 Jan Kratochvil * util.c (CLONE_VM): Define if not defined already. (setbpt): Clear CLONE_VM in the case we already clear CLONE_VFORK for SYS_clone and SYS_clone2. Reported by Michal Nowak. Fixes RH#455078. 2008-08-06 Jan Kratochvil Fix compiler warnings. * signal.c (sys_signal): Cast to SIG_* to the matching type LONG. * strace.c (trace): Variables PSR and PC are now signed. * syscall.c (syscall_enter): Variable RBS_END is now signed long. Remove/add the RBS_END casts appropriately. * util.c [IA64] (arg_setup): Variable BSP is now signed long. Remove/add the BSP casts appropriately. : Initialize *STATE. 2008-07-31 Roland McGrath * Makefile.am (EXTRA_DIST): Add new linux/arm/ files. * file.c [LINUX] (struct kernel_dirent): Define it locally, do not use . Fixes RH#457291. * configure.ac: Add AC_HEADER_STDBOOL. * defs.h [HAVE_STDBOOL_H]: #include . Fixes Debian#492774. 2008-07-24 Dmitry V. Levin * strace.c (main): Fix -F option backwards compatibility. 2008-07-22 Roland McGrath * Makefile.am (EXTRA_DIST): Add new debian/ files. 2008-07-21 Roland McGrath * configure.ac: Version 4.5.17. * strace.spec: 4.5.17-1. * defs.h [LINUXSPARC]: Don't #include . 2008-07-19 Frederik Schüler * debian/control: Add strace64 package. * debian/rules: Use debhelper flag --same-arch instead of --arch in order to build strace64 only on the specified architectures. * debian/strace64.install: New file, list for dh_install. * debian/strace64.manpages: New file, list for dh_install. * debian/changelog: Add prereleases entries. Fixes Debian#491167, Debian#491188. 2008-07-18 Andreas Schwab * linux/ia64/syscallent.h: Decode mincore syscall. * linux/powerpc/syscallent.h: Fix argument count for request_key. * term.c (term_ioctl): Decode indirect parameter as int, not long. 2008-07-17 Roland McGrath * NEWS, strace.spec: Updates in preparation for release. * process.c (printwaitn): When current personality's wordsize is smaller than native, sign-extend the PID argument from 32 bits. * process.c (futexops): Update table. (sys_futex): Handle FUTEX_WAIT_BITSET correctly. From Ulrich Drepper . Fixes RH#448628. * linux/syscallent.h: Fix "futex" argument count. * linux/alpha/syscallent.h: Likewise. * linux/arm/syscallent.h: Likewise. * linux/hppa/syscallent.h: Likewise. * linux/ia64/syscallent.h: Likewise. * linux/m68k/syscallent.h: Likewise. * linux/powerpc/syscallent.h: Likewise. * linux/s390/syscallent.h: Likewise. * linux/s390x/syscallent.h: Likewise. * linux/sparc/syscallent.h: Likewise. * linux/x86_64/syscallent.h: Likewise. From Ulrich Drepper . Fixes RH#448629. * signal.c (sigact_flags): Prefer SA_NODEFER to SA_NOMASK, SA_RESETHAND to SA_ONESHOT. Fixes RH#455821. 2008-07-09 Frederik Schüler * debian/rules: Remove the broken udeb creation routines, and redo the complete install procedure using debhelper. * debian/strace.docs: New file, list for dh_installdocs. * debian/strace.examples: New file, list for dh_installexamples. * debian/strace.install: New file, list for dh_install. * debian/strace-udeb.install: New file, list for dh_install. * debian/strace.manpages : New file, list for dh_installmanpages. * debian/copyright: Update. * debian/control: Fix libc6 build dependency for alpha and ia64. (strace-udeb: XC-Package-Type): Add header. * debian/changelog: Cosmetic changes. 2008-07-03 Jan Kratochvil Trace vfork under -f on all the platforms. * strace.1 <-f>: Describe Linux catches new children immediately. <-F>: Make the option obsolete. Move the SunOS VFORK comment to the `-f' option description. * defs.h (followvfork): Declaration removed. * strace.c (followvfork): Variable removed. (main) <-F>: Merge with the `-f' option. (trace): Make !FOLLOWVFORK unconditional. * process.c (internal_fork): Make !FOLLOWVFORK unconditional. 2008-07-01 Frederik Schüler * debian/changelog: List all bugs closed since the last release. * debian/control: Remove Wichert Akkerman from uploaders list. * debian/control: Bump standards version to 3.8.0. * debian/control: Add Homepage field. * debian/rules: Fix dpkg-gencontrol call. * debian/compat: New file, set to compatibility level 5. * debian/rules: Call dh_clean on clean target. * debian/rules: Add dh_md5sums call. Fixes Debian#439428. 2008-06-30 Jan Kratochvil Fix ia64 `-f' on clone2 formerly crashing the child. * util.c [IA64] (restore_arg0, restore_arg1): Define as empty. Fixes RH#453438. 2008-06-27 Jan Kratochvil * util.c (CLONE_VFORK): Define if not defined already. (setbpt): Clear CLONE_VFORK for SYS_clone and SYS_clone2. Reported by Vitaly Mayatskikh. Fixes RH#455078. 2008-06-29 Dmitry V. Levin * linux/x86_64/syscallent.h: Remove duplicate syscall entries for #283 and #284. 2008-06-27 Jan Kratochvil * linux/syscallent.h: Remove a duplicite syscall stub #326. 2008-05-27 Roland McGrath * syscall.c [LINUX] (is_negated_errno): New function. (get_error) [LINUX]: Use it for all such cases. Fixes RH#447587. 2008-05-19 Roland McGrath * linux/x86_64/syscallent.h: Update entries for timerfd_* and fallocate. * file.c (sys_fallocate): New function. * linux/syscall.h: Declare it. * linux/syscallent.h: Update entry. From Kyle McMartin . * time.c (sys_timerfd_create): New function. (sys_timerfd_settime, sys_timerfd_gettime): New functions. * linux/syscall.h: Declare them. * linux/syscallent.h: Update entries for those syscalls. From Kyle McMartin . * debian/rules (binary-arch): Fix chmod/chown typo. Fixes Debian#459255. * debian/rules (binary-arch): Install strace-graph in examples/ directory under package doc. Fixes Debian#469068. * signal.c (sys_kill): When current personality's wordsize is smaller than native, sign-extend the PID argument from 32 bits. Fixes RH#430585. * configure.ac: Add check for struct sigcontext_struct in . * signal.c [! HAVE_ASM_SIGCONTEXT_H] [I386] (struct sigcontext_struct): Conditionalize definition on !HAVE_STRUCT_SIGCONTEXT_STRUCT. Fixes Debian#456879. * util.c [LINUX] (setbpt): Use correct SYS_clone number for current personality. Fixes RH#447475. 2008-05-08 David S. Miller * syscall.c (socket_map, sparc_socket_decode): Delete. (trace_syscall): Use common socketcall and ipc subcall support on sparc. * linux/sparc/syscall.h (sys_semtimedop): Declare. (SYS_socket_subcall, SYS_sub_socket, SYS_sub_bind, SYS_sub_connect, SYS_sub_listen, SYS_sub_accept, SYS_sub_getsockname, SYS_sub_getpeername, SYS_sub_socketpair, SYS_sub_send, SYS_sub_recv, SYS_sub_sendto, SYS_sub_recvfrom, SYS_sub_shutdown, SYS_sub_setsockopt, SYS_sub_getsockopt, SYS_sub_sendmsg, SYS_sub_recvmsg, SYS_socket_nsubcalls, SYS_ipc_subcall, SYS_sub_semop, SYS_sub_semget, SYS_sub_semctl, SYS_sub_semtimedop, SYS_sub_msgsnd, SYS_sub_msgrcv, SYS_sub_msgget, SYS_sub_msgctl, SYS_sub_shmat, SYS_sub_shmdt, SYS_sub_shmget, SYS_sub_shmctl, SYS_ipc_nsubcalls): Define * linux/sparc/syscallent.h: Add socketcall and ipc entries. 2008-01-25 Bruna Moreira * defs.h [ARM]: Define SUPPORTED_PERSONALITIES to 2. * syscall.c (get_scno) [ARM]: Add support for architecture specific syscalls. * linux/arm/syscallent.h: Update network syscalls list. * linux/arm/syscallent1.h: New file. Add new architecture specific syscalls. * linux/arm/errnoent1.h: New file. * linux/arm/ioctlent1.h: New file. * linux/arm/signalent1.h: New file. Fixes Debian#441000. 2008-01-07 Paul Mundt * linux/sh64/syscallent.h: Update numerous calls, fix others. 2007-08-26 Daniel Jacobowitz * defs.h [MIPS]: Include . (MAX_QUALS): Update for MIPS. (LINUX_MIPSO32, LINUX_MIPSN32, LINUX_MIPSN64, LINUX_MIPS64): Define. (struct tcb): Add ext_arg for MIPS N32. (TCB_WAITEXECVE): Define for MIPS. (ALIGN64): Use LINUX_MIPSO32. * file.c (sys_lseek): Use ext_arg for MIPS N32. (sys_readahead, sys_fadvise64_64): Likewise. * io.c (sys_pread64, sys_pwrite64): Likewise. * mem.c (print_mmap): Take OFFSET argument. (sys_old_mmap): Update call to print_mmap. (sys_mmap): Use ext_arg for MIPS N32. * process.c (struct_user_offsets): Add MIPS registers. * signal.c (sys_sigreturn): Handle MIPS N32 and MIPS N64. Correct MIPS O32 call to sprintsigmask. * syscall.c (internal_syscall): Handle MIPS N32. Check for TCB_WAITEXECVE on MIPS. (force_result): Add a comment about MIPS N32. (syscall_enter): Handle MIPS N32 and MIPS N64. * linux/syscall.h (sys_pread64, sys_pwrite64): Declare. * linux/mips/syscallent.h: Include "dummy.h". Handle alternate MIPS ABIs. 2008-04-19 Dmitry V. Levin * file.c [_LFS64_LARGEFILE] (sys_getdents64): Do the same d_reclen check as in sys_getdents: warn if d_reclen is 0 rather than looping forever. [FREEBSD] (sys_getdirentries): Likewise. Signed-off-by: Mike Frysinger * file.c [LINUXSPARC] (printstatsol): Fix sprinttime() invocation. The sprinttime() function takes a time_t argument, but timestruct_t argument was given. Signed-off-by: Mike Frysinger * file.c (sprinttime): Check localtime() return value, to avoid potential NULL dereference due to invalid time structures. Signed-off-by: Harald van Dijk Signed-off-by: Mike Frysinger * linux/errnoent.h: Update errno list based on latest linux/errno.h and asm-generic/errno*.h files. Signed-off-by: Mike Frysinger * signalent.sh: Fix sort(1) old-style options. * syscallent.sh: Likewise. Signed-off-by: Mike Frysinger * count.c (call_summary_pers): Check calloc() return value. Signed-off-by: "Yang Zhiguo" 2008-03-26 Roland McGrath * strace.spec (strace64_arches): Add sparc64. 2007-11-20 Roland McGrath * CREDITS, ChangeLog: Converted contents to UTF8. 2007-11-19 Roland McGrath * strace.spec: Add BuildRequires on libaio-devel, libacl-devel. 2007-11-19 Andreas Schwab * process.c (sys_ptrace) [IA64]: For PTRACE_PEEKDATA, PTRACE_PEEKTEXT and PTRACE_PEEKUSER the data is returned directly. * linux/syscallent.h: Fix argument count for getdents64. * linux/arm/syscallent.h: Likewise. * linux/m68k/syscallent.h: Likewise. * linux/x86_64/syscallent.h: Likewise. * linux/ia64/syscallent.h: Use sys_getdents64. * linux/sh/syscallent.h: Likewise. 2007-11-06 Jan Kratochvil * strace.c [LINUX] (droptcb): Recurse on TCP->parent if it is a TCB_EXITING zombie group leader. * test/childthread.c: New file. * test/.cvsignore, test/Makefile: Add it. Code advisory: Roland McGrath Fixes RH#354261. 2007-11-03 Roland McGrath * process.c (prctl_options): Add numerous constants. From Sami Farin . Fixes RH#364401. 2007-11-03 Jan Kratochvil * strace.c (main): Move the STARTUP_CHILD call before setting up the signal handlers. New comment about the valid internal states. 2007-11-02 Thiemo Seufer * signal.c (m_siginfo_t): Add for MIPS. (sys_sigreturn): struct sigcontext on MIPS has no sigset_t member, acquire the signal mask with the same trick as on Sparc. Fixes Debian#448802. 2007-11-01 Roland McGrath * util.c (string_quote): Return nonzero if the string was unterminated. (printstr): Use that value instead of just our own test. (printpathn): Likewise. Fixes RH#358241. * linux/mips/syscallent.h: Fix argument count for fadvise64_64. From Paul Mundt . * linux/mips/syscallent.h: Fix argument count for lookup_dcookie. From Paul Mundt . * linux/sh64/syscallent.h: Fix SYS_socket_subcall check. From Paul Mundt . * linux/sh/syscallent.h: Update numerous calls. From Paul Mundt . 2007-09-22 Dmitry V. Levin * desc.c (sys_pselect6): Decode signal mask when entering syscall. Relax signal mask size check. * time.c (print_timespec, sprint_timespec): New functions. * defs.h (print_timespec, sprint_timespec): Declare them. * desc.c (sys_io_getevents): Use print_timespec. * stream.c (sys_ppoll): Likewise. (decode_poll): Use sprint_timespec. 2007-09-22 Alan Curry Dmitry V. Levin * stream.c (decode_poll): Rearrange so that arguments are decoded and printed on syscall entry, except for revents and the output timespec which are now printed in the auxstr. (sys_poll): Print the input timeout argument on syscall entry. [LINUX] (sys_ppoll): Likewise. Fixes Debian#369651. 2007-09-22 Dmitry V. Levin * desc.c (sprintflags): Remove static qualifier, add "prefix" argument, move function to ... * util.c (sprintflags): ... here. * defs.h (sprintflags): Declare it. 2007-11-01 Roland McGrath * syscall.c (get_scno) [ARM]: Check TCB_WAITEXECVE. Reported by Bernhard Fischer . * net.c (sockpacketoptions): Make PACKET_ADD_MEMBERSHIP and PACKET_DROP_MEMBERSHIP conditional. From Bernhard Fischer . * configure.ac: Match sh64* for SH64, sh* for SH. Reported by Bernhard Fischer . 2007-10-01 Dmitry V. Levin * net.c (printsock): Output AF_UNIX socket address using printpathn() to avoid unprintable characters in output. Suggested by Neil Campbell. 2007-10-01 Dmitry V. Levin * util.c (string_quote): Move quoting code from ... (printstr) ... here. Use string_quote. (printpathn): Update for new string_quote interface. (printpath): Use printpathn. 2007-09-25 Dmitry V. Levin * strace.c (main): Use calloc for tcbtab allocation. Check calloc return value. Reported by Bai Weidong. 2007-09-11 Roland McGrath * linux/sparc/syscall.h: Add missing decls. * linux/sparc/syscallent.h: Correct entries for setgroups32, getgroups32, sys_getdents64. From Jakub Bogusz . * linux/alpha/syscallent.h: Correct entries for madvise, setresgid, getresgid, pivot_root, mincore, pciconfig_iobase, getdents64. From Jakub Bogusz . * linux/syscallent.h: Fix getegid32 entry. From Jakub Bogusz . * defs.h [LINUXSPARC]: Use asm/psrcompat.h for [SPARC64], not asm/psr.h. From Jakub Bogusz . * mem.c (sys_getpagesize): Define for [SPARC || SPARC64] too. From Jakub Bogusz . 2007-08-20 Dmitry V. Levin * syscall.c (qual_syscall, qualify): Fix nsyscalls and MAX_QUALS misuse. Reported by Xiaoning Ding. 2007-08-06 Jan Kratochvil Roland McGrath * file.c [!HAVE_STAT64 && LINUX && X86_64] (struct stat64): Define it. [!HAVE_STAT64 && LINUX && X86_64] (HAVE_STAT64, STAT64_SIZE): Define. [HAVE_STAT64] (printstat64) [STAT64_SIZE]: Add compile-time assertion. Fixes RH#222275. * file.c (printstat64): Test [HAVE_LONG_LONG] for st_size printing and cast to widest type available. 2007-08-03 Ulrich Drepper * file.c (open_mode_flags): Add O_CLOEXEC. * net.c (msg_flags): Add MSG_CMSG_CLOEXEC. Fixes RH#365781. 2007-08-03 Roland McGrath * configure.ac, NEWS: Version 4.5.16. * debian/changelog, strace.spec: 4.5.16-1. * debian/control (Build-Depends): Replace libc6-dev-s390x and libc6-dev-sparc64 with gcc-multilib. * debian/rules: Replace sparc-linux, s390-linux conditionals with general "arch64_map" hair, handle x86_64 and powerpc64 too. From Matthias Klose . Fixes Debian#435303. 2007-08-02 Jan Kratochvil * strace.c (detach): Moved the resume notification code to ... (resume_from_tcp): ... a new function here. (handle_group_exit): No longer detach also the thread group leader. (trace): Fixed panic on exit of the TCB_GROUP_EXITING leader itself. Fixes RH#247907. * test/leaderkill.c (start): Renamed to ... (start0): ... here. (start1): New function. (main): Created a new spare thread. 2007-08-01 Roland McGrath * util.c (umoven): Don't perror for EIO. (umovestr): Likewise. * process.c (printargv): Handle boundary cases correctly. Handle biarch fetching correctly. * util.c (printstr): Don't print ... if the string matches the length limit exactly. * linux/sparc64/syscallent.h: Just #include the sparc file. * linux/sparc64/syscallent1.h: Likewise. * linux/sparc64/syscallent2.h: Likewise. * linux/arm/syscallent.h: Add entry for getcpu. * linux/hppa/syscallent.h: Likewise. * linux/ia64/syscallent.h: Likewise. * linux/mips/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/sparc/syscallent.h: Likewise. * linux/sparc64/syscallent.h: Likewise. * linux/arm/syscallent.h: Add entry for eventfd. * linux/ia64/syscallent.h: Likewise. * linux/mips/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/sparc/syscallent.h: Likewise. * linux/sparc64/syscallent.h: Likewise. * linux/arm/syscallent.h: Add entry for timerfd. * linux/ia64/syscallent.h: Likewise. * linux/mips/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/sparc/syscallent.h: Likewise. * linux/sparc64/syscallent.h: Likewise. * linux/arm/syscallent.h: Add entry for signalfd. * linux/ia64/syscallent.h: Likewise. * linux/mips/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/sparc/syscallent.h: Likewise. * linux/sparc64/syscallent.h: Likewise. * linux/hppa/syscallent.h: Add entry for epoll_pwait. * linux/ia64/syscallent.h: Likewise. * linux/mips/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/sparc/syscallent.h: Likewise. * linux/sparc64/syscallent.h: Likewise. 2007-07-23 Ulrich Drepper * process.c (sys_getcpu): New function. * linux/syscall.h: Declare sys_getcpu. * linux/syscallent.h: Add entry for getcpu. * desc.c (sys_eventfd): New function. * linux/syscall.h: Declare sys_eventfd. * linux/syscallent.h: Add entry for eventfd. * linux/x86_64/syscallent.h: Likewise. * time.c (printitv_bitness): Add missing braces to enclose conditional code. (TDF_TIMER_ABSTIME): Define if not already. (timerfdflags): New variable. (sys_timerfd): New function. * linux/syscall.h: Declare sys_timerfd. * linux/syscallent.h: Add timerfd entry. * linux/x86_64/syscallent.h: Likewise. * linux/syscall.h: Declare sys_signalfd. * linux/syscallent.h: Add entry for signalfd. * linux/x86_64/syscallent.h: Likewise. * signal.c (sys_signalfd): New function. * desc.c (sys_epoll_wait): Move body of function to ... (epoll_wait_common): ...here. New function. (sys_epoll_pwait): New function. * linux/syscall.h: Declare sys_epoll_pwait. * linux/syscallent.h: Add entry for epoll_pwait. * linux/x86_64/syscallent.h: Likewise. 2007-07-23 Roland McGrath * time.c (printtv_bitness): SPECIAL only counts when tv_sec == 0. * linux/arm/syscallent.h: Add move_pages. * linux/hppa/syscallent.h: Likewise. * linux/ia64/syscallent.h: Likewise. * linux/m68k/syscallent.h: Likewise. * linux/mips/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/sparc/syscallent.h: Likewise. * linux/sparc64/syscallent.h: Likewise. * linux/syscallent.h: move_pages takes 6 args, not 5. * linux/x86_64/syscallent.h: Likewise. 2007-07-23 Ulrich Drepper * defs.h: Add new parameter to printtv_bitness prototype. (printttv): Pass zero for the new parameter. (printtv_special): New macro. * desc.c (decode_select): Pass zero for the new parameter of printtv_bitness. * file.c (utimensatflags): New macro. (sys_osf_utimes): Pass zero for the new parameter of printtv_bitness. (sys_utimes): Likewise. (sys_futimesat): Likewise. (decode_utimes): Add new parameter. Pass it to the printtv_bitness calls. Fix printing of time values. (sys_utimensat): New function. * time.c (UTIME_NOW, UTIME_OMIT): Define if not already happened. (printtv_bitness): Add new parameter. Print special UTIME_* values as strings if set. (sys_osf_gettimeofday): Pass zero for the new parameter of printtv_bitness. (sys_osf_settimeofday): Likewise. * linux/syscall.h: Declare sys_utimensat. * linux/syscallent.h: Add utimensat entry. * linux/x86_64/syscallent.h: Likewise. * mem.c (move_pages_flags): New variable. (sys_move_pages): New function. * linux/syscall.h: Declare sys_move_pages. * linux/syscallent.h: Add entry for sys_move_pages. * linux/x86_64/syscallent.h: Likewise. * mem.c (MPOL_MF_MOVE, MPOL_MF_MOVE_ALL): Define. (mbindflags): Add MPOL_MF_MOVE and MPOL_MF_MOVE_ALL entries. 2007-07-23 Roland McGrath * util.c (tv_add): Fix rounding comparison. Reported by Bai Weidong . 2007-07-11 Roland McGrath * count.c (call_summary_pers): Use tv_float conversion for output of cumulative time, in case it is negative from bogus -O value. From Lai JiangShan . * strace.c (handle_group_exit): Detach TCP before LEADER. Don't use PTRACE_KILL on LEADER. * util.c (printstr): Fix size calculation for outstr allocation. * configure.ac (struct sigcontext.sc_hi2): Use #ifdef around to match signal.c include conditions. 2007-07-05 Roland McGrath * debian/rules: Use debian/$(package) instead of debian/tmp as temp dir. * configure.ac: Use before . * debian/changelog: Harmonize with debian version. * debian/control (Uploaders): Fix surname spelling. (Build-Depends): Make debhelper requirement (>= 5.0.0). (Standards-Version): Update to 3.7.2. * .cvsignore: Add some automake-created files. * file.c (sys_utime): Use personality_wordsize to handle biarch. Fixes RH#247185. * signal.c (sys_sigreturn) [MIPS]: Pass 3rd arg to sprintsigmask. From Zhang Le . * strace.c (strace_fopen): [_LFS64_LARGEFILE]: Use fopen64. Fixes Debian#385310. * strace.c (main): Fix error message for unfound -u user. From Srinivasa Ds . Fixes RH#247170. * debian/control (Architecture): Add armel. * linux/syscallent.h: Fix sys_delete_module arg count. * linux/alpha/syscallent.h: Likewise. * linux/arm/syscallent.h: Likewise. * linux/hppa/syscallent.h: Likewise. * linux/ia64/syscallent.h: Likewise. * linux/m68k/syscallent.h: Likewise. * linux/mips/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/sparc/syscallent.h: Likewise. * linux/sparc64/syscallent.h: Likewise. * linux/sparc64/syscallent2.h: Likewise. * linux/x86_64/syscallent.h: Likewise. * linux/dummy.h (sys_delete_module): Use sys_open. From Johannes Stezenbach . * configure.ac: Check for struct sigcontext.sc_hi2. * signal.c (sys_sigreturn) [MIPS]: Use sc_hi2 vs sc_sigset if found. * process.c [LINUX] (futexops): Add many new values. [LINUX] (futexwakeops, futexwakecmps): New tables. [LINUX] (sys_futex): Use them. From Ulrich Drepper . Fixes RH#241467. 2007-07-05 Jan Kratochvil * strace.c (detach): New prototype. Extended the function comment. [LINUX] (detach): Call droptcb() instead of the wrongly parametrized detach() call. (handle_group_exit): Call droptcb() instead of the wrongly parametrized detach() call. Always call detach() only once from the group leader. Comment the leader killing known bug tested by `test/leaderkill.c'. Code advisory: Roland McGrath Fixes RH#240961. * test/leaderkill.c: New file. * test/.cvsignore, test/Makefile: Add it. 2007-03-21 Andreas Schwab * file.c (sys_newfstatat): Don't use printstat64 on ppc64. 2007-03-29 Vladimir Nadvornik Dmitry V. Levin Trace linux SG_IO ioctl arguments and results. * scsi.c: New file. * Makefile.am (strace_SOURCES): Add it. * defs.h (scsi_ioctl): New function. * ioctl.c (ioctl_decode): Use scsi_ioctl(). 2007-06-28 Dmitry V. Levin * util.c (tv_mul): Multiply tv_usec properly. Patch from Cai Fei . 2007-06-11 Jan Kratochvil Never interrupt when the attached traced process would be left stopped. * strace.c (main): `-p' attaching moved to ... (startup_attach): ... a new function, renamed a variable C to TCBI. Block interrupting signals since the first tracee has been attached. New comment about INTERRUPTED in the nonthreaded case. [LINUX] (startup_attach): Check INTERRUPTED after each attached thread. (main): Command spawning moved to ... (startup_child): ... a new function, replaced RETURN with EXIT. [LINUX] (detach): New variable CATCH_SIGSTOP, do not signal new SIGSTOP for processes still in TCB_STARTUP. (main): Move signals and BLOCKED_SET init before the tracees attaching, [SUNOS4] (trace): Removed fixvfork () call as a dead code, SIGSTOP must have been already caught before clearing TCB_STARTUP. (trace): Removed the `!WIFSTOPPED(status)' dead code. Clear TCB_STARTUP only in the case the received signal was SIGSTOP. New comment when `TCB_BPTSET && TCB_STARTUP' combination can be set. Code advisory: Roland McGrath Fixes RH#240986. 2007-05-24 Jan Kratochvil * strace.c [LINUX] (my_tgkill): New macro. [LINUX] (detach): Use my_tgkill () instead of kill(2). Fixes RH#240962. 2007-03-30 Dmitry V. Levin * mem.c (mmap_flags): Add MAP_32BIT. Reported by Kirill A. Shutemov. 2007-01-12 Dmitry V. Levin * sock.c (sock_ioctl): Check umove() return code. [LINUX]: Handle SIOCGIFTXQLEN and SIOCGIFMAP. 2007-03-16 Roland McGrath * linux/s390/syscallent.h: Use sys_restart_syscall for 7. * linux/s390x/syscallent.h: Likewise. 2007-02-18 Roland McGrath * strace.spec (Summary): Remove trailing period. (%files): Add %doc files. (%changelog): Double %s in text. (BuildRoot): Change to Fedora canonical. (%install): Don't use %makeinstall macro. (%build): Use %{?_smp_mflags}. 2007-01-16 Roland McGrath * configure.ac, NEWS: Version 4.5.15. * debian/changelog, strace.spec: 4.5.15-1. 2007-01-16 Dmitry V. Levin Update mount parser to match kernel behaviour. * system.c [LINUX] (MS_VERBOSE): Rename to MS_SILENT. [LINUX] (MS_UNBINDABLE, MS_PRIVATE, MS_SLAVE, MS_SHARED): New macros. [LINUX] (mount_flags): Add them. [LINUX] (MS_MGC_MSK): New macro. [LINUX] (sys_mount): Update parser to match kernel behaviour: discard MS_MGC_VAL magic, do not decode type and/or data strings when specified flags do not imply valid strings. 2007-01-12 Dmitry V. Levin * time.c [LINUX] (tprint_timex32, tprint_timex): Decode adjtimex modes as flags. 2007-01-11 Dmitry V. Levin Update umount parser. * system.c [LINUX] (MNT_FORCE, MNT_DETACH, MNT_EXPIRE): New macros. [LINUX] (umount_flags): New xlat structure with MNT_* entries. [LINUX] (sys_umount2): Use umount_flags. Fix open(2) flags parser. * defs.h (tprint_open_modes): New function. * desc.c (sprint_open_modes): New function. (sys_fcntl): Use tprint_open_modes() and sprint_open_modes(). * file.c (openmodes): Split xlat into open_access_modes and open_mode_flags. (tprint_open_modes): New function. (decode_open): Use it. * ipc.c (sys_mq_open, printmqattr): Likewise. Fixes RH#222385. 2007-01-11 Roland McGrath * configure.ac, NEWS: Version 4.5.15. * debian/changelog, strace.spec: 4.5.15-1. * debian/control (Uploaders): Add Frederik Schueler . * strace.spec (Release): Use %{?dist}. * system.c [LINUX] (CTL_CPU): Define in case header is missing it. 2006-12-27 Dmitry V. Levin Add const qualifier to xlookup() return value. * defs.h (xlookup): Add const qualifier to return value. * desc.c (sprintflags): Likewise. * process.c (printpriv): Update xlookup() use. * signal.c (sprintsigmask): Add const qualifier to first argument and return value. * util.c (xlookup): Add const qualifier to return value. (printxval): Update xlookup() use. 2006-12-21 Dmitry V. Levin Move counts code to separate file. * count.c: New file. * Makefile.am (strace_SOURCES): Add count.c. * syscall.c (call_counts, countv, counts, shortest, time_cmp, syscall_cmp, count_cmp, sortfun, overhead, set_sortby, set_overhead, call_summary_pers, call_summary): Move to count.c * count.c (count_syscall): New function. * defs.h (count_syscall): Declare it. * syscall.c (trace_syscall): Use it. 2006-12-20 Dmitry V. Levin * syscall.c (internal_syscall): Change conditions for internal_exit, internal_fork, internal_clone, internal_exec and internal_wait calls from switching on known scno values to switching on known sysent[tcp->scno].sys_func values. Fixes RH#179740. Show system call summary for each personality. * syscall.c (countv): New call_counts pointers array. (counts): Convert to macro wrapper around countv. (call_summary_pers): New function. (call_summary): Use it for each personality. Fixes RH#192193. 2006-12-12 Dmitry V. Levin Fix -ff -o behaviour. Fix piping trace output. * defs.h (newoutf): Remove. (alloctcb): Rename to alloc_tcb. Add alloctcb() macro wrapper around alloc_tcb(). * process.c [!USE_PROCFS] (internal_clone, internal_fork): Remove newoutf() call. * strace.c (set_cloexec_flag, strace_fopen, strace_popen, swap_uid): New functions. (popen_pid): New variable. (newoutf): Make static, use strace_fopen(). (main): Use strace_fopen() and strace_popen(), remove uids swapping. Do not open outfname when followfork > 1. Reinitialize tcp->outf properly. (alloctcb): Rename to alloc_tcb. Use newoutf(). (trace): Check popen_pid. Remove newoutf() call. [USE_PROCFS] (proc_open, proc_poll_open): Use set_cloexec_flag(). Fixes RH#204950, RH#218435, Debian#353935. 2006-12-10 Dmitry V. Levin Add biarch support for "struct sigevent". * time.c [LINUX && SUPPORTED_PERSONALITIES > 1] (printsigevent32): New function. [LINUX] (printsigevent): [SUPPORTED_PERSONALITIES > 1] Handle 32-bit personality. Add biarch support for "struct timex". * time.c [LINUX && SUPPORTED_PERSONALITIES > 1] (tprint_timex32): New function. [LINUX] (tprint_timex): New function. [LINUX] (sys_adjtimex): Use it. Enhance adjtimex parser. * time.c [LINUX] (adjtimex_modes, adjtimex_status, adjtimex_state): New xlat structures. [LINUX] (sys_adjtimex): Print the whole struct timex. Decode modes, status and return code. Add biarch support for "struct itimerval". * time.c (printitv): Rename to printitv_bitness(). Add printitv() macro wrapper around printitv_bitness(). (printitv_bitness): Handle 32-bit personality. [ALPHA] (sys_osf_getitimer, sys_osf_setitimer): Use printitv_bitness(). (tprint_timeval, tprint_timeval32): New functions. (printtv_bitness, printitv_bitness, sys_adjtimex): Use them. (printitv32): Remove. Add biarch support for "struct timeval". * defs.h (bitness_t): New enum type. (printtv_bitness, sprinttv): New function prototypes. (printtv): Convert to macro wrapper around printtv_bitness(). (printtv32): Remove. * desc.c (decode_select): Use printtv_bitness() and sprinttv(). (sys_oldselect, sys_osf_select, sys_select, sys_pselect6): Update decode_select() use. * file.c [ALPHA] (sys_osf_utimes): Use printtv_bitness(). * time.c (printtv_bitness, sprinttv): New functions. (printtv, printtv32): Remove. [ALPHA] (sys_osf_settimeofday, sys_osf_settimeofday): Use printtv_bitness(). Fixes RH#171626, RH#173050. Add biarch support for "struct iovec". * defs.h (personality_wordsize): Add. * io.c [HAVE_SYS_UIO_H] (tprint_iov): [LINUX && SUPPORTED_PERSONALITIES > 1] Handle 32-bit personality. * util.c [HAVE_SYS_UIO_H] (dumpiov): [LINUX && SUPPORTED_PERSONALITIES > 1] Likewise. Patch from Jakub Jelinek. Fixes RH#218433. * time.c (sys_timer_create): Check umove() return code. Make several global variables static. #ifdef definitions of rarely unused functions. * defs.h (rflag, tflag, outfname): Remove. * strace.c (iflag, interactive, pflag_seen, rflag, tflag, outfname, username): Make static. * desc.c (sys_getdtablesize): Define only for ALPHA || FREEBSD || SUNOS4. * file.c (sys_fchroot): Define only for SUNOS4 || SVR4. (sys_mkfifo): Define only for FREEBSD. * mem.c (sys_sbrk): Define only for FREEBSD || SUNOS4. (sys_getpagesize): Define only for ALPHA || FREEBSD || IA64 || SUNOS4 || SVR4. * net.c (sys_so_socket): Define only for SVR4. * process.c (sys_gethostid): Define only for FREEBSD || SUNOS4 || SVR4. (sys_gethostname): Define only for ALPHA || FREEBSD || SUNOS4 || SVR4. (sys_setpgrp): Define only for ALPHA || SUNOS4 || SVR4. (sys_execv): Define only for SPARC || SPARC64 || SUNOS4. * signal.c (sys_sigblock): Define only for FREEBSD || SUNOS4. (sys_sighold, sys_sigwait): Define only for SVR4. (sys_killpg): Define only for FREEBSD || SUNOS4. * stream.c (sys_getmsg): Define only for SPARC || SPARC64 || SUNOS4 || SVR4. * syscall.c (sys_indir): Define only for SUNOS4. 2006-11-27 Dmitry V. Levin * system.c [LINUX]: Define CTL_PROC, since Linux 2.6.18+ headers removed CTL_PROC enum. Patch from Jakub Jelinek. [LINUX] (sysctl_root): Add CTL_BUS, CTL_ABI and CTL_CPU. 2006-11-20 Jakub Jelinek * linux/ia64/syscallent.h: Add #if check to make sure that SYS_socket_subcall adjustment isn't forgotten again. 2006-10-16 Dmitry V. Levin Implement comprehensive quotactl(2) parser for Linux. * Makefile.am (strace_SOURCES): Add quota.c. * quota.c: New file. * resource.c: Remove old quotactl(2) parser. Fixes RH#118696. 2006-10-14 Dmitry V. Levin * configure.ac (AC_CHECK_HEADERS): Add inttypes.h. * file.c [_LFS64_LARGEFILE && (LINUX || SVR4)]: Include . (sys_getdents64): Use PRIu64/PRId64 to avoid gcc warnings on 64-bit platforms. * strace.c (main): Check getcwd() return code. 2006-10-13 Ulrich Drepper Bernhard Kaindl Dmitry V. Levin Michael Holzheu Add hooks for new syscalls. Add decoders for *at, inotify*, pselect6, ppoll and unshare syscalls. * defs.h: Declare print_sigset. * desc.c (sys_pselect6): New function. * file.c (decode_open, decode_access, decode_mkdir, decode_readlink, decode_chmod, decode_utimes, decode_mknod): New functions. (sys_open, sys_access, sys_mkdir, sys_readlink, sys_chmod, sys_utimes, sys_mknod): Use them. [LINUX] (fstatatflags, unlinkatflags, inotify_modes): New variables. [LINUX] (print_dirfd, sys_openat, sys_faccessat, sys_newfstatat, sys_mkdirat, sys_linkat, sys_unlinkat, sys_symlinkat, sys_readlinkat, sys_renameat, sys_fchownat, sys_fchmodat, sys_futimesat, sys_mknodat, sys_inotify_add_watch, sys_inotify_rm_watch): New functions. * process.c [LINUX] (sys_unshare): New function. * signal.c (print_sigset): New function. (sys_sigprocmask): Use it. * stream.c (decode_poll): New function. (sys_poll): Use it. [LINUX] (sys_ppoll): New function. * linux/syscall.h: Delcare new syscall handlers. * linux/syscallent.h: Hook up new syscalls. * linux/alpha/syscallent.h: Likewise. * linux/hppa/syscallent.h: Likewise. * linux/ia64/syscallent.h: Likewise. * linux/mips/syscallent.h: Likewise. * linux/powerpc/syscallent.h: Likewise. * linux/s390/syscallent.h: Likewise. * linux/s390x/syscallent.h: Likewise. * linux/sparc/syscallent.h: Likewise. * linux/sparc64/syscallent.h: Likewise. * linux/x86_64/syscallent.h: Likewise. Fixes RH#178633. 2006-10-06 Dmitry V. Levin * strace.c [!USE_PROCFS] (trace): Presence of PT_GETSIGINFO macro does not mean that PT_CR_IPSR and PT_CR_IIP macros are also defined, so check them along with PT_GETSIGINFO. Fixes RH#209856. 2006-09-01 Dmitry V. Levin * file.c (print_xattr_val): Fix memory corruption bug reported by James Antill. Fixes RH#200621. 2006-04-21 Dmitry V. Levin * defs.h [LINUX && X86_64 && !__NR_exit_group]: Define __NR_exit_group. 2006-03-29 Dmitry V. Levin Fix race conditions in tcb allocation. * process.c (fork_tcb): Return error code as documented. Do not print "tcb table full" error message. [USE_PROCFS] (internal_fork): Do not print "tcb table full" error message. [SYS_clone || SYS_clone2] (internal_clone, internal_fork): Call fork_tcb() before alloctcb(). Do not print "tcb table full" error message. * strace.c (main): Do not print "tcb table full" error message. (expand_tcbtab): Print error message in case of memory allocation failure. (alloctcb): Print error message when tcb table is full. (trace): Expand tcb table if necessary prior to allocating entry there. Do not print "tcb table full" error message. Fixes RH#180293. 2006-08-22 Roland McGrath * ipc.c (sys_msgget, sys_semget, sys_shmget): Show key values in hex. Fixes RH#198179. 2006-08-21 Roland McGrath * linux/syscall.h (SYS_socket_subcall): Bump to 400. * linux/syscallent.h: Update table. * linux/arm/syscallent.h: Likewise. * linux/m68k/syscallent.h: Likewise. * linux/s390/syscallent.h: Likewise. * linux/s390x/syscallent.h: Likewise. * linux/powerpc/syscallent.h: Likewise. * linux/sh/syscallent.h: Likewise. * linux/sh64/syscallent.h: Likewise. Fixes RH#201462. 2006-04-25 Roland McGrath * strace.c (main): Fail when -c is given with -ff. * strace.1: Note their incompatibility. Fixes RH#187847. * strace.c (main): Fail when nonoption args follow -p switches. Fixes Debian#361302. * Makefile.am (EXTRA_DIST): Add xlate.el. * linux/mips/Makefile.in: File removed, unused cruft. * linux/sparc/Makefile.in: Likewise. * strace.spec (Source0): Use http://dl.sourceforge.net URL. * ipc.c (sys_semtimedop): Fixed inverted indirect_ipccall test. * linux/hppa/syscallent.h: Fixed semtimedop entry. From Mike Stroyan . Fixes Debian#340239. 2006-03-30 Daniel Jacobowitz * linux/arm/syscallent.h: Correct the name of exit. Remove M68K conditionals and sys_security. Correct syscalls 243-282. Fixes Debian#360154. * process.c (change_syscall): Add ARM support. * syscall.c (get_scno): Handle ARM EABI. Fixes Debian#360152. 2006-01-16 Roland McGrath * configure.ac, NEWS: Version 4.5.14. * debian/changelog, strace.spec: 4.5.14-1. 2006-01-13 Roland McGrath * debian/control (Build-Depends): Add debhelper. 2006-01-12 Roland McGrath * signal.c [LINUX] (sys_restart_syscall): New function. * linux/syscall.h: Declare sys_restart_syscall. * linux/sparc/syscall.h: Likewise. * linux/syscallent.h: Call 0 is restart_syscall. * linux/arm/syscallent.h: Likewise. * linux/powerpc/syscallent.h: Likewise. * linux/m68k/syscallent.h: Likewise. * linux/hppa/syscallent.h: Likewise. * linux/sh/syscallent.h: Likewise. * linux/sparc/syscallent.h: Likewise. * linux/sparc64/syscallent.h: Likewise. * linux/alpha/syscallent.h: Use sys_restart_syscall. * linux/ia64/syscallent.h: Likewise. * linux/mips/syscallent.h: Likewise. * linux/x86_64/syscallent.h: Likewise. Fixes RH#165469, Debian#350641. 2005-08-08 Dmitry V. Levin * system.c [LINUX] (MS_MGC_VAL): New macro. [LINUX] (mount_flags): Add it. [LINUX] (sys_mount): If neither MS_BIND nor MS_MOVE bits are set in the flags argument, try to fetch data string. Fixes RH#165377. 2006-01-12 Roland McGrath * system.c (sys_sysctl): Don't read off end of NAME when max_strlen exceeds INFO.nlen. From Timo Lindfors . Fixes Debian#339117. * debian/rules (binary-arch): Don't pass -s to install. Use dh_strip. Fixes Debian#325132. * debian/control (Standards-Version): Update to 3.6.2. * defs.h [LINUXSPARC] (PERSONALITY0_WORDSIZE, PERSONALITY1_WORDSIZE): New macros. [SPARC64] (PERSONALITY2_WORDSIZE): New macro. [X86_64] (PERSONALITY0_WORDSIZE, PERSONALITY1_WORDSIZE): New macros. * syscall.c (PERSONALITY0_WORDSIZE): New macro if undefined. (personality_wordsize): New variable. (decode_subcall): Use it for size of argument words. Fixes RH#174354. 2005-11-17 Dmitry V. Levin Implement qual_flags support for each personality. * strace.c (main): Move qualify calls after set_personality call. * syscall.c (qual_flags0): New variable.. [SUPPORTED_PERSONALITIES >= 2] (qual_flags1): New variable. [SUPPORTED_PERSONALITIES >= 3] (qual_flags2): New variable. (qual_flags): Change variable definition from array to pointer. (set_personality): Initialize qual_flags variable. (qualify_one): Add "pers" argument to specify personality. [SUPPORTED_PERSONALITIES >= 2]: Set qual_flags1 if requested. [SUPPORTED_PERSONALITIES >= 3]: Set qual_flags2 if requested. (qual_syscall): Pass personality to qualify_one. [SUPPORTED_PERSONALITIES >= 2]: Look for syscall also in sysent1 table. [SUPPORTED_PERSONALITIES >= 3]: Look for syscall also in sysent2 table. (qual_signal): Pass personality to qualify_one. (qual_desc): Likewise. (qualify): Use qualify_one instead of manual qual_flags manipulations. [SUPPORTED_PERSONALITIES >= 2]: Look for syscall also in sysent1 table. [SUPPORTED_PERSONALITIES >= 3]: Look for syscall also in sysent2 table. * defs.h: Update qual_flags declaration. Fixes RH#173986. 2005-11-14 Dmitry V. Levin * syscall.c (qual_syscall): Handle numeric syscall specification. Fixes RH#174798. * syscall.c (qual_signal, qual_options): Remove redundant argument check. 2005-12-01 Roland McGrath * ipc.c (indirect_ipccall) [MIPS || HPPA]: Return false. Fixes Debian#340239. * Makefile.am (EXTRA_DIST): Add linux/arm/syscallent.h and linux/m68k/syscallent.h. Fixes Debian#336197. * debian/control (Architecture): Add armeb. Fixes Debian#335681. 2005-11-02 Michal Marek * strace-graph (handle_trace): follow clone() and vfork() calls. 2005-10-25 Heiko Carstens * linux/s390/syscallent.h: Added ioprio_set, ioprio_get, inotify_init, inotify_add_watch, inotify_rm_watch. Corrected number of arguments for request_key. * linux/s390x/syscallent.h: Likewise. 2005-12-01 Roland McGrath * ipc.c (indirect_ipccall) [IA64]: Return false unless the syscall number is in the low range of IA32 syscalls. 2005-10-07 Andreas Schwab * linux/ia64/syscallent.h: Syscall 1105 is gettid, not ioperm. 2005-12-01 Roland McGrath * resource.c (resources): Add RLIMIT_NICE, RLIMIT_RTPRIO. Reported by Scott Tsai . * ipc.c (indirect_ipccall): New function. (sys_msgctl, sys_msgsnd, sys_msgrcv, sys_semop): Use that predicate instead of #ifdef LINUX test. [LINUX] (sys_semtimedop): Likewise. (sys_shmctl, sys_shmat, sys_shmdt): Likewise. Fixes RH#164755. 2005-07-31 Ulrich Drepper * linux/x86_64/syscallent.h: Fix syscall parameter count for msgrcv and msgctl. * ipc.c (sys_msgrcv): Add entering handling and print first parameter there. Fixes RH#164757. 2005-08-08 Dmitry V. Levin * strace.1: Update "SEE ALSO" links to reference to valid manpages. Patch from Michail Litvak . Fixes RH#165375. 2005-10-21 Roland McGrath * util.c (printpathn): Cap N at sizeof path - 1. 2005-08-03 Roland McGrath * configure.ac, NEWS: Version 4.5.13. * debian/changelog, strace.spec: 4.5.13-1. * configure.ac: Check for struct dqblk.dqb_curblocks field. * resource.c [LINUX] (OLD_CMD): New macro. (quotacmds): Use it to hard-wire old O_* values, don't use macros. (sys_quotactl): If dqb_curblocks is not there, it's called dqb_curspace instead. Print dqb_* fields as unsigned long long. 2005-07-19 Michael Schmitz Long overdue m68k cleanup. * linux/syscallent.h: remove m68k declarations. * linux/m68k/syscallent.h: new file, fixed up declarations to match kernel version 2.6.11. Newer syscalls are sufficiently different from i386 to merit a separate file. 2005-08-03 Roland McGrath * linux/x86_64/syscallent.h: Update init_module argument count. * linux/sparc/syscallent.h: Likewise. * linux/sparc64/syscallent2.h: Likewise. * linux/sparc64/syscallent.h: Likewise. * linux/sh/syscallent.h: Likewise. * linux/sh64/syscallent.h: Likewise. * linux/s390/syscallent.h: Likewise. * linux/s390x/syscallent.h: Likewise. * linux/powerpc/syscallent.h: Likewise. * linux/arm/syscallent.h: Likewise. 2005-07-22 James Lentini * bjm.c (sys_init_module): Display all three arguments. * linux/syscallent.h: Update argument count. 2005-08-03 Roland McGrath * process.c (internal_wait): Don't suspend when known child is known to be exiting already. * strace.c (detach): If detaching the last live thread in a group with a zombie leader, then detach the leader too. (handle_group_exit): Use detach, not droptcb, for predeceased thread. Mark process about to take a signal with TCB_GROUP_EXITING flag. Fixes RH#161919. 2005-07-19 Roland McGrath * defs.h [LINUX] [M68K] (__NR_exit_group): Define it if missing. Fixes Debian#315500. 2005-07-14 Heiko Carstens * linux/s390/syscallent.h (sys_tgkill, vserver, fadvise64_64) (statfs64, fstatfs64, remap_file_pages, mbind, get_mempolicy) (set_mempolicy, mq_open, mq_unlink, mq_timedsend, mq_timedreceive) (mq_notify, mq_getsetattr, sys_kexec_load, add_key, request_key) (keyctl, waitid): Added. * linux/s390x/syscallent.h: Likewise and added missing _llseek. * linux/s390/errnoent.h (ECANCELED, ENOKEY, EKEYEXPIRED) (EKEYREVOKED, EKEYREJECTED, EOWNERDEAD, ENOTRECOVERABLE): Added. * linux/s390x/errnoent.h: Likewise. 2005-07-05 Roland McGrath * mem.c [LINUX] (sys_old_mmap) [X86_64]: Extract 32-bit values if child is 32-bit. Fixes RH#162467. 2005-06-08 Dmitry V. Levin Introduce "-e trace=desc". * defs.h (TRACE_DESC): New flag. * syscall.c: Define TD macro before include of syscallent files and undefine it afterwards. (lookup_class): Recognize "desc" keyword. * strace.1: Document "-e trace=desc". * freebsd/i386/syscallent.h: Mark those syscalls which take a file descriptor as an argument or return a file descriptor with TD flag. * linux/alpha/syscallent.h: Likewise. * linux/hppa/syscallent.h: Likewise. * linux/ia64/syscallent.h: Likewise. * linux/mips/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/sparc/syscallent.h: Likewise. * linux/sparc64/syscallent2.h: Likewise. * linux/sparc64/syscallent.h: Likewise. * linux/syscallent.h: Likewise. * linux/x86_64/syscallent.h: Likewise. * sunos4/syscallent.h: Likewise. * svr4/syscallent.h: Likewise. Fixes RH#159400. Remove TF flag from those syscalls which have no filename argument. * freebsd/i386/syscallent.h: Remove TF flag from fstat, pread, pwrite, fstat, sendfile. * linux/alpha/syscallent.h: Remove TF flag from read, write, pread, pwrite, sendfile. * linux/hppa/syscallent.h: Remove TF flag from read, write, pread, pwrite, fstat64, sendfile, ftruncate64. * linux/ia64/syscallent.h: Remove TF flag from read, write, sendfile, fstat, fadvise64. * linux/mips/syscallent.h: Remove TF flag from read, write, fstatfs, fstat, pread, pwrite, sendfile, ftruncate64, fstat64, sendfile64, fadvise64, fstatfs64. * linux/powerpc/syscallent.h: Remove TF flag from read, write, fstat, pread, pwrite, sendfile, ftruncate64, fstat64, sendfile64, fadvise64, fstatfs64, fadvise64_64. * linux/s390/syscallent.h: Remove TF flag from pread, pwrite, sendfile, ftruncate64, fstat64, sendfile64. * linux/s390x/syscallent.h: Remove TF flag from pread, pwrite, sendfile, sendfile64. * linux/sh/syscallent.h: Remove TF flag from pread, pwrite, sendfile, fstat64. * linux/sh64/syscallent.h: Remove TF flag from pread, pwrite, sendfile, ftruncate64, fstat64. * linux/sparc/syscallent.h: Remove TF flag from sendfile, fstat64, pread, pwrite, sendfile64. * linux/sparc64/syscallent2.h: Likewise. * linux/sparc64/syscallent.h: Likewise. * linux/syscallent.h: Remove TF flag from pread, pwrite, sendfile, ftruncate64, fstat64, sendfile64, fadvise64, fadvise64, fstatfs64, fadvise64_64. * linux/x86_64/syscallent.h: Remove TF flag from pread, pwrite, sendfile, fadvise64_64. * svr4/syscallent.h: Remove TF flag from pread, pwrite, ftruncate, fstatvfs64, ftruncate64. Fixes RH#159340. 2005-07-04 Roland McGrath * net.c (sockipv6options): Add IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP, IPV6_ROUTER_ALERT. From Ulrich Drepper . Fixes RH#162450. * net.c (sockipoptions): Fix typos. From Ulrich Drepper . Fixes RH#161578. * util.c (printnum_int): New function, printnum with s/long/int/. * defs.h: Declare it. * net.c (printsockopt): Use it for int-sized option. Fixes RH#162449. Reported by Ulrich Drepper . 2005-06-09 Roland McGrath * configure.ac, NEWS: Version 4.5.12. * debian/changelog, strace.spec: 4.5.12-1. 2005-06-08 Dmitry V. Levin Minor namespace cleanup. * defs.h (string_quote): Remove declaration. * file.c (openmodessol) [LINUXSPARC]: Make static. (fileflags): Likewise. (aclcmds, aclipc) [HAVE_SYS_ACL_H]: Likewise. (direnttypes) [FREEBSD || LINUX]: Likewise. (xattrflags): Likewise. * process.c (unalignctl_string): Make static. (setarg): Disable. * syscall.c (subcalls_table): Make static. (socket_map) [!(LINUX && (ALPHA || MIPS))]: Likewise. (sparc_socket_decode): Make static, define for [SPARC || SPARC64] only. (decode_subcall): Make static. (syscall_fixup): Likewise. (get_error): Likewise. (syscall_enter): Likewise. * util.c (tv_tv): Disable. (getpc): Likewise. (string_quote): Make static. Fixes RH#159688. 2005-05-12 Philippe De Muyter * util.c (getpc, printcall): Check #if defined(M68K), not M68k. Enables `-i' on m68k machines. 2005-06-06 Roland McGrath * process.c (struct_user_offsets) [X86_64]: Reorder elements so matching works right. Fixes RH#159787. * linux/syscall.h (SYS_socket, SYS_bind, SYS_connect, SYS_listen) (SYS_accept, SYS_getsockname, SYS_getpeername, SYS_socketpair) (SYS_send, SYS_recv, SYS_sendto, SYS_recvfrom, SYS_shutdown) (SYS_setsockopt, SYS_getsockopt, SYS_sendmsg, SYS_recvmsg) (SYS_getsockname, SYS_semop, SYS_semgsub_et, SYS_semget, SYS_semctl) (SYS_semtimedop, SYS_msgsnd, SYS_msgrcv, SYS_msgget) (SYS_msgctl, SYS_shmat, SYS_shmdt, SYS_shmget) (SYS_shmctl): Macros renamed to SYS_sub_*. * syscall.c (dumpio): Match SYS_sub_* if defined instead of SYS_*. * linux/syscall.h (SYS_waitid): Define if not defined. * linux/syscallent.h: Fix pread/pwrite names to pread64/pwrite64. * defs.h (struct sysent): New member `native_scno'. (known_scno): Declare new function. * linux/syscallent.h: Add new final field to interesting syscalls. * syscall.c (known_scno): New function. (dumpio, internal_syscall, syscall_fixup, trace_syscall): Use it. * process.c (internal_fork, internal_exit): Likewise. [IA64] (ARG_STACKSIZE, ARG_PTID, ARG_CTID, ARG_TLS): Likewise. * strace.c (proc_open): Likewise. * util.c [LINUX] (setbpt): Likewise. * linux/syscall.h: Remove [!defined(X86_64)] from conditional for defining SYS_socket_subcall et al. * linux/syscallent.h: Likewise for #error check. * syscall.c (trace_syscall): Likewise for SYS_{socketcall,ipc} cases. Fixes RH#158934. 2005-06-02 Roland McGrath * file.c (printstatfs64): Cast values to unsigned long long and use %llu formats. Fixes RH#158243. 2005-05-31 Dmitry V. Levin Deal with memory management issues. * defs.h (tprint_iov): Update prototype. * desc.c (sys_epoll_wait) [HAVE_SYS_EPOLL_H]: Do not allocate epoll_event array of arbitrary size on the stack, to avoid stack overflow. * file.c (print_xattr_val): Check for integer overflow during malloc size calculation, to avoid heap corruption. * io.c (tprint_iov) [HAVE_SYS_UIO_H]: Check for integer overflow during malloc size calculation, to avoid heap corruption. Change iovec array handling to avoid heap memory allocation. * mem.c (get_nodes) [LINUX]: Check for integer overflow during size calculation and do not allocate array of arbitrary size on the stack, to avoid stack overflow. * net.c (printcmsghdr) [HAVE_SENDMSG]: Do not allocate array of arbitrary size on the stack, to avoid stack overflow. Do not trust cmsg.cmsg_len to avoid read beyond the end of allocated object. (printmsghdr) [HAVE_SENDMSG]: Update tprint_iov() usage. * process.c (sys_setgroups): Check for integer overflow during malloc size calculation, to avoid heap corruption. Change gid_t array handling to avoid heap memory allocation. (sys_getgroups): Likewise. (sys_setgroups32) [LINUX]: Likewise. (sys_getgroups32) [LINUX]: Likewise. * stream.c (sys_poll) [HAVE_SYS_POLL_H]: Check for integer overflow during malloc size calculation, to avoid heap corruption. Change pollfd array handling to avoid heap memory allocation. * system.c (sys_sysctl) [LINUX]: Check for integer overflow during malloc size calculation, to avoid heap corruption. * util.c (dumpiov) [HAVE_SYS_UIO_H]: Check for integer overflow during malloc size calculation, to avoid heap corruption. Fixes RH#159196. * util.c (printxval): Change third argument from "char *" to "const char *". (printflags): Add third argument, "const char *", with similar meaning to the third argument of printxval(). * defs.h (printxval): Change third argument from "char *" to "const char *". (printflags): Add third argument. * bjm.c (sys_query_module) [LINUX]: Pass third argument to printflags(). * desc.c (sys_fcntl): Likewise. (sys_flock) [LOCK_SH]: Likewise. (print_epoll_event) [HAVE_SYS_EPOLL_H]: Likewise. * file.c (sys_open): Likewise. (solaris_open) [LINUXSPARC]: Likewise. (sys_access): Likewise. (sys_chflags, sys_fchflags) [FREEBSD]: Likewise. (realprintstat) [HAVE_LONG_LONG_OFF_T && HAVE_STRUCT_STAT_ST_FLAGS]: Likewise. (printstat64) [HAVE_STAT64 && HAVE_STRUCT_STAT_ST_FLAGS]: Likewise. (sys_setxattr, sys_fsetxattr): Likewise. * ipc.c (sys_msgget, sys_msgsnd, sys_msgrcv, sys_semget, sys_shmget, sys_shmat) [LINUX || SUNOS4 || FREEBSD]: Likewise. (sys_mq_open) [LINUX]: Likewise. (printmqattr) [HAVE_MQUEUE_H]: Likewise. * mem.c (print_mmap) [!HAVE_LONG_LONG_OFF_T]: Likewise. (sys_mmap64) [_LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T]: Likewise. (sys_mprotect): Likewise. (sys_mremap, sys_madvise, sys_mlockall) [LINUX]: Likewise. (sys_msync) [MS_ASYNC]: Likewise. (sys_mctl) [MC_SYNC]: Likewise. (sys_remap_file_pages, sys_mbind, sys_get_mempolicy) [LINUX]: Likewise. * net.c (printmsghdr) [HAVE_STRUCT_MSGHDR_MSG_CONTROL]: Likewise. (sys_send, sys_sendto): Likewise. (sys_sendmsg) [HAVE_SENDMSG]: Likewise. (sys_recv, sys_recvfrom): Likewise. (sys_recvmsg) [HAVE_SENDMSG]: Likewise. (printicmpfilter) [ICMP_FILTER]: Likewise. * proc.c (proc_ioctl) [SVR4 && !HAVE_MP_PROCFS || FREEBSD]: Likewise. * process.c (sys_clone) [LINUX]: Likewise. (printwaitn): Likewise. (sys_waitid) [SVR4 || LINUX]: Likewise. * signal.c (sys_sigvec) [SUNOS4 || FREEBSD]: Likewise. (sys_sigaction): Likewise. (printcontext) [SVR4]: Likewise. (print_stack_t) [LINUX) || FREEBSD]: Likewise. (sys_rt_sigaction) [LINUX]: Likewise. * sock.c (sock_ioctl) [LINUX]: Likewise. * stream.c (sys_putmsg, sys_getmsg): Likewise. (sys_putpmsg) [SYS_putpmsg]: Likewise. (sys_getpmsg) [SYS_getpmsg]: Likewise. (sys_poll): Likewise. (print_transport_message) [TI_BIND]: Likewise. (stream_ioctl): Likewise. * system.c (sys_mount, sys_reboot): Likewise. (sys_cacheflush) [LINUX && M68K]: Likewise. (sys_capget, sys_capset) [SYS_capget]: Likewise. * term.c (term_ioctl) [TIOCMGET]: Likewise. * time.c (sys_clock_nanosleep, sys_timer_settime) [LINUX]: Likewise. Fixes RH#159310. * bjm.c (sys_query_module) [LINUX]: Unitize "out of memory" errors reporting style. * strace.c (rebuild_pollv) [USE_PROCFS]: Likewise. * system.c (sys_capget, sys_capset) [SYS_capget]: Likewise. * util.c (printstr): Likewise. (dumpiov) [HAVE_SYS_UIO_H]: Likewise. (fixvfork) [SUNOS4]: Likewise. * desc.c (decode_select): Continue to decode syscall arguments in case of OOM condition. * file.c (sys_getdents): Likewise. (sys_getdents64) [_LFS64_LARGEFILE]: Likewise. (sys_getdirentries) [FREEBSD]: Likewise. * mem.c (sys_mincore): Changed type of variables which deal with malloc size from int to unsigned long. Fixes RH#159308. 2005-05-22 Dmitry V. Levin * bjm.c [LINUX]: Do not include . It is not safe to include kernel headers, and this one is not used anyway. Fixes RH#158488. 2005-05-26 Roland McGrath * system.c (sys_sysctl): Check for errors accessing user pointers. Use malloc instead of alloca in case size is insane. 2005-05-09 Roland McGrath * configure.ac: Check for libaio.h. * desc.c (sys_io_setup, sys_io_submit, sys_io_cancel, sys_io_getevents, sys_io_destroy): New functions. * linux/syscall.h: Declare them. * linux/syscallent.h: Use those for io_* syscalls. * linux/alpha/syscallent.h: Likewise. * linux/hppa/syscallent.h: Likewise. * linux/ia64/syscallent.h: Likewise. * linux/mips/syscallent.h: Likewise. * linux/powerpc/syscallent.h: Likewise. * linux/s390/syscallent.h: Likewise. * linux/s390x/syscallent.h: Likewise. * linux/x86_64/syscallent.h: Likewise. From Zach Brown . Fixes RH#155065. * debian/control (Architecture): Add ppc64. Fixes Debian bug #301089. 2005-05-05 Anton Blanchard * process.c (ptrace_cmds): Add PTRACE_GETVRREGS and PTRACE_SETVRREGS if defined. 2005-05-09 Roland McGrath * strace.c (main): Refuse negative -s argument value. Fixes Debian bug #303256. 2005-04-25 Anton Blanchard * file.c (openmodes): Add O_NOATIME flag if defined. 2005-04-05 Anton Blanchard * linux/powerpc/ioctlent.h: Regenerated. * signal.c (signame): Don't try and dereference negative index. * linux/powerpc/syscallent.h: Add debug_setcontext, vserver, mbind, *_mempolicy, mq_*, sys_kexec_load, add_key, request_key, keyctl, waitid, sys_semtimedop. Fix various other syscalls. * ipc.c (shm_resource_flags): New variable, table has SHM_HUGETLB but not IPC_NOWAIT, which have the same value. (sys_shmget): Use that instead of resource_flags. 2005-03-22 Roland McGrath * desc.c (decode_select): Increase local buffer size. Fixes RH#151570. * configure.ac, NEWS: Version 4.5.11. * debian/changelog, strace.spec: 4.5.11-1. * linux/arm/syscallent.h: Fix 113 entry (syscall, not vm86old). 2005-03-14 Roland McGrath * configure.ac, NEWS: Version 4.5.10. * debian/changelog, strace.spec: 4.5.10-1. 2005-02-26 GOTO Masanori * linux/alpha/syscallent.h: Fix the reversed order of lstat64 and fstat64. Clean up osf_nrecvmsg and osf_ngetsockname. 2005-02-28 Andreas Schwab * syscall.c (getrval2): Move #ifdef IA64 inside #ifdef LINUX. 2005-03-14 Roland McGrath * linux/mips/syscallent.h: Update various calls. From Thiemo Seufer . Fixes Debian bug #256684. * debian/control (Architecture): Add s390. Fixes Debian bug #294172. 2005-03-06 Roland McGrath * strace.c (trace) [PTRACE_GETSIGINFO]: Fetch siginfo_t for SIGSEGV and SIGBUS signals, use si_addr in output. 2005-03-01 Roland McGrath * file.c (print_xattr_val): Add a cast. 2005-02-05 Roland McGrath * desc.c (decode_select): Calculate size of passed fd_set vectors and copy in the user's size rather than the standard sizeof(fd_set). Fixes Debian bug #65654, #284290. * util.c (printpath, printpathn): Print NULL and don't try any fetch when ADDR is zero. Fixes Debian bug #63093. * debian/control (Build-Depends): Fix for s390 and sparc. From Bastian Blank . Fixes Debian bug #293564. 2004-12-19 Dmitry V. Levin * strace.c (main) [!USE_PROCFS]: In child process, raise SIGSTOP right before execv() call. Remove fake_execve() call. * defs.h (fake_execve): Remove unused declaration. * process.c (fake_execve): Remove unused function. Fixes RH#143365. 2005-02-04 Roland McGrath * configure.ac, NEWS: Version 4.5.9. * debian/changelog, strace.spec: 4.5.9-2. * file.c (O_LARGEFILE): Omit when #undef'd because it was zero. 2005-02-02 Roland McGrath * debian/control: Add strace-udeb package for installer debugging. * debian/rules (binary-arch): Build it. From Joshua Kwan . Fixes Debian bug #268294. * file.c (openmodes) [O_LARGEFILE] [O_LARGEFILE == 0]: Redefine to known values for Linux. * util.c (printcall): Print 16 ?s when long is 8 bytes. Fixes RH#146932. * linux/sparc/syscall.h: Declare sys_epoll_create, sys_epoll_ctl, sys_epoll_wait. * linux/sparc64/syscall.h: Just #include "../sparc/syscall.h" here. * ioctl.c (nioctlents2): Add const to type. Fixes Debian bug #278449. * sock.c (iffflags): New variable, table of IFF_* values. (print_addr): New function. (sock_ioctl): Handle SIOCGIFADDR, SIOCGIFDSTADDR, SIOCGIFBRDADDR, SIOCGIFNETMASK, SIOCGIFFLAGS, SIOCGIFMETRIC, SIOCGIFMTU, SIOCGIFSLAVE, SIOCGIFHWADDR. Use print_addr for SIOCGIFCONF, SIOCGIFNAME, and SIOCGIFINDEX, and fix their output. From Ulrich Drepper . Fixes RH#138223. Fixes Debian bug #192164. 2004-12-20 Dmitry V. Levin * configure.ac: Use AC_GNU_SOURCE macro instead of changing CFLAGS. * defs.h [HAVE_CONFIG_H]: Include config.h first. * strace.c: Include "defs.h" first. Fixes RH#143370. * syscall.c (call_summary): Fix potential NULL dereference. Fixes RH#143369. 2004-12-19 Dmitry V. Levin * syscall.c (qual_signal): Check bounds for numeric signal names. Fix parser of symbolic signal names. Fix return code, as required by qualify() function. * syscall.c (qual_desc): Check bounds for descriptor number. * syscall.c (qual_syscall): Correct return code, to be consistent with qualify() and other qual_* functions. Fixes RH#143362. 2005-02-01 Roland McGrath * system.c [LINUX] (MS_MANDLOCK, MS_NOATIME, MS_NODIRATIME, MS_BIND, MS_MOVE, MS_REC, MS_VERBOSE, MS_POSIXACL, MS_ACTIVE, MS_NOUSER): New macros. [LINUX] (mount_flags): Add them. [LINUX] (sys_mount): If any of (MS_BIND|MS_MOVE|MS_REMOUNT) bits are set in the flags argument, don't try to fetch the filesystem string. Fixes RH#141932. * config.guess: Update from canonical version, timestamp 2004-11-12. * config.sub: Likewise, timestamp 2004-11-30. * process.c [LINUX] [X86_64] (sys_arch_prctl): New function. * linux/syscall.h: Declare it. * linux/x86_64/syscallent.h: Use it. Part of RH#142667. * process.c (sys_sched_setscheduler): Use %#lx format for bad pointer. (sys_sched_getparam, sys_sched_setparam): Likewise. Part of RH#142667. * signal.c [HAVE_SIGACTION] [LINUX && X86_64] (SA_RESTORER): Define here too. Part of RH#142667. * linux/syscallent.h: Use sys_mincore instead of printargs. * linux/x86_64/syscallent.h: Likewise. Also use sys_getrlimit, sys_semtimedop, sys_umount2. Part of RH#142667. * syscall.c (qual_signal): Fix inverted return value and bogus argument to qualify_one in the named case. * file.c (print_xattr_val): Don't use auto array sized by syscall argument. Use malloc instead, so it can fail for insane values. Fixes Debian bug #283704. * net.c (sys_getsockopt): Fix a format %ld -> %d. * linux/syscall.h [IA64] (SYS_semtimedop): #undef it. * syscall.c (syscall_enter) [X86_64]: Fix 32-bit argument register map not to double the middle entry! Fixes RH#146093. * linux/x86_64/syscallent.h: Fix exit_group entry. * util.c (getpc) [S390 || S390X]: Implement it. Patch by David Wilder . * linux/ia64/syscallent.h: Add fadvise64, fstatfs64, statfs64, mbind, [gs]et_mempolicy, mq_*, sys_kexec_load, vserver, and waitid. Fixes RH#146245. 2005-01-22 Andreas Schwab * net.c (sys_getsockopt): Change type of len to int. 2004-10-19 Roland McGrath * configure.ac, NEWS: Version 4.5.8. * debian/changelog, strace.spec: 4.5.8-1. * file.c (sys_fadvise64): Conditionalize just on [LINUX]. * configure.ac: Check for sys/epoll.h. * desc.c: Protect #include with [HAVE_SYS_EPOLL_H]. (epollctls, epollevents): Protect each entry with #ifdef on its macro. * strace.c (handle_group_exit): Don't detach leader that wasn't TCB_ATTACHED. Instead mark it with TCB_GROUP_EXITING. Remove droptcb loop at end, no longer required since 2.6 reports each thread death. Fixes RH#135254. * strace.c (trace): Use handle_group_exit for non-TCB_ATTACHED child taking signal when it has nclone_threads > 0. * strace.c (handle_group_exit, trace): Mark leader with TCB_GROUP_EXITING and don't be surprised at child deaths when their leader has it set. Fixes RH#132150. * process.c (WCOREFLAG): Define if not defined. (W_STOPCODE, W_EXITCODE): Likewise. Reported by Marty Leisner . * sock.c [! LINUX]: Include before . Reported by Marty Leisner . * debian/rules: Make strace64.1.gz symlink to strace.1.gz instead of strace64.1 to strace.1, which doesn't exist. Fixes Debian bug #269220. 2004-09-05 Phil Blundell * linux/arm/syscallent.h: New file. 2004-10-19 Roland McGrath * debian/rules (DEB_BUILD_GNU_TYPE, CONFIG_OPTS): New variables. [$(DEB_HOST_GNU_TYPE) == s390-linux] (build64, HOST64, CC64): Set them. (build/Makefile): Use $(CONFIG_OPTS). (build64/Makefile): Pass --host as well as --build. From Bastian Blank . Fixes Debian bug #271500. * linux/hppa/syscallent.h: Update for 2.6.9 syscalls. From Randolph Chung Fixes Debian bug #273887. * file.c (sys_llseek): Revert last change. 2004-09-14 Richard Henderson * linux/alpha/syscallent.h: Add tgkill, *stat64, vserver, mbind, [gs]et_mempolicy, mq_*, waitid. 2004-10-07 Roland McGrath * file.c (sys_llssek, sys_readahead, sys_fadvise64, sys_fadvise64_64): Use LONG_LONG macro. * io.c (sys_pread, sys_pwrite, sys_sendfile): Likewise. * linux/x86_64/syscallent.h: Fix botched table entries. From Ulrich Drepper . * mem.c [LINUX] (sys_mbind, sys_set_mempolicy, sys_get_mempolicy): New functions. * linux/syscall.h: Declare them. * linux/x86_64/syscallent.h: Likewise. From Ulrich Drepper . * linux/syscallent.h: Handle mbind, set_mempolicy, get_mempolicy. From Ulrich Drepper . * file.c [LINUX && (I386 || X86_64)] (sys_fadvise64, sys_fadvise64_64): New functions. * linux/syscall.h: Declare them. * linux/syscallent.h: Handle fadvise64 and fadvise64_64 using those. * linux/x86_64/syscallent.h: Likewise. From Ulrich Drepper . 2004-09-13 Dmitry V. Levin * linux/ioctlsort.c (main): Omit duplicate lines (with same name and code) from output. * linux/ioctlent.sh: Build the list of ioctls defined in scsi/sg.h (0x22..), scsi/scsi.h and scsi/scsi_ioctl.h (0x53..), as suggested by Peter Jones * linux/ioctlent.h: Regenerated. Fixes RH#129808. 2004-09-13 Ulrich Drepper Dmitry V. Levin * time.c [LINUX] (print_rtc): New function, for printing rtc_time structure. [LINUX] (rtc_ioctl): New function, for parsing RTC_* ioctls. * ioctl.c [LINUX] (ioctl_decode): Call rtc_ioctl. * defs.h [LINUX]: Declare rtc_ioctl. Fixes RH#58606. 2004-10-06 Roland McGrath * desc.c [LINUX] (sys_epoll_create, sys_epoll_ctl, sys_epoll_wait): New functions. * linux/syscall.h: Declare them. * linux/syscallent.h: Use those for epoll_* syscalls. * linux/alpha/syscallent.h: Likewise. * linux/hppa/syscallent.h: Likewise. * linux/ia64/syscallent.h: Likewise. * linux/powerpc/syscallent.h: Likewise. * linux/s390/syscallent.h: Likewise. * linux/s390x/syscallent.h: Likewise. * linux/sparc/syscallent.h: Likewise. * linux/sparc64/syscallent.h: Likewise. * linux/sparc64/syscallent2.h: Likewise. * linux/x86_64/syscallent.h: Likewise. From Ulrich Drepper . Fixes RH#134463. * resource.c (resources): Add RLIMIT_LOCKS, RLIMIT_SIGPENDING, and RLIMIT_MSGQUEUE, if defined. From Ulrich Drepper . Fixes RH#133594. * net.c [HAVE_SENDMSG] (printcmsghdr): New function. (printmsghdr): Use it. From Ulrich Drepper . Fixes RH#131689. * file.c (sprintmode): Add const to return type. (sprintfstype): Likewise. * signal.c (printsiginfo): Add a const. 2004-09-15 Roland McGrath * linux/x86_64/syscallent.h: Use sys_waitid. * linux/syscallent.h: waitid takes 5 arguments, and is in TP category. * process.c (sys_waitid): Handle fifth argument (struct rusage *). 2004-09-11 Roland McGrath * time.c (sys_clock_nanosleep): Print zero flags arg correctly. (sys_timer_settime): Likewise. (printsigevent): Print signals by name for SIGEV_SIGNAL. (sys_timer_create): Print clock ID symbolically. From Ulrich Drepper . Fixes RH#131420. 2004-09-07 Michal Ludvig * defs.h (nioctlents1, nsignals2): Fix typos in decls. 2004-09-03 Roland McGrath * syscall.c (qual_options): Add const to defn. Update all uses. (call_count, error_count, tv_count): Variables removed. (struct call_counts, counts): New type and variable. Update all users of the old three to use the new array of structs. (trace_syscall): Allocate counts on first use. (sorted_count): Variable removed. (call_summary): Allocate locally. * syscall.c (sysent0, sysent1, sysent2, sysent): Add const to defn. (nsyscalls0, nsyscalls1, nsyscalls2): Likewise. (errnoent0, errnoent1, errnoent2, errnoent): Likewise. (nerrnos0, nerrnos1, nerrnos2): Likewise. * signal.c (signalent0, signalent1, signalent2): Likewise. (nsignals0, nsignals1, nsignals2): Likewise. (signame): LIkewise. * ioctl.c (ioctlent0, ioctlent1, ioctlent2): Likewise. (nioctlents0, nioctlents1, nioctlents2): Likewise. (ioctl_lookup, ioctl_next_match): Likewise. * defs.h: Update decls. * io.c (sys_ioctl): Update users. * util.c (xlookup, printxval, addflags, printflags): Use const for struct xlat * argument. * defs.h (xlookup, printxval, addflags, printflags): Update decls. * bjm.c: Add const to all struct xlat defns. * desc.c: Likewise. * file.c: Likewise. * ipc.c: Likewise. * mem.c: Likewise. * net.c: Likewise. * proc.c: Likewise. * process.c: Likewise. * resource.c: Likewise. * signal.c: Likewise. * sock.c: Likewise. * stream.c: Likewise. * system.c: Likewise. * term.c: Likewise. * time.c: Likewise. * util.c: Likewise. 2004-09-01 Roland McGrath * linux/x86_64/syscallent.h: Add new entries for timer_*, clock_*, and mq_* syscalls, and names only for new calls up to 252. * linux/syscallent.h: Add waitid. * linux/x86_64/syscallent.h: Likewise. * linux/syscall.h: Declare sys_waitid. * process.c (internal_wait): Take second arg giving index of flags argument. * defs.h: Update prototype. * syscall.c (internal_syscall): Update caller. Also use internal_wait for SYS_waitid. * process.c (sys_waitid): Define for [LINUX] as well. Don't tweak TCB_SUSPENDED--internal_wait does that. (waitid_types): Conditionalize use of nonstandard P_* macros. 2004-08-31 Roland McGrath * configure.ac, NEWS: Version 4.5.7. * debian/changelog: 4.5.7-1. * strace.spec: 4.5.7-2. * debian/rules: Rewrite sparc64 change of 2004-07-12. Always do each build in a separate build directory. Fixes Debian bug #254728. * time.c (clocknames): Use #ifdef around CLOCK_* uses. * strace.1: Say that -c shows system CPU time, not real time. Fixes Debian bug #254438. * syscall.c (dumpio): Match pread and pwrite system calls too. Fixes Debian bug #239947. * net.c (sockoptions): Add all SO_* macros known in Linux 2.6.9. Fixes Debian bug #171653. 2004-07-12 Dmitry V. Levin * signal.c [LINUX] (parse_sigset_t): Fix hex strings parser. Fixes RH#128091. 2004-08-30 Roland McGrath * strace.c (main): Don't call fake_execve under -c. From Ulrich Drepper . Fixes RH#129166. * net.c (sockipoptions): Add some options. [SOL_IPV6] (sockipv6options): New variable. (sys_getsockopt, printsockopt): Use it for SOL_IPV6 level. From Ulrich Drepper . Fixes RH#128391. * time.c (clocknames): New variable, symbolic names for clock_t. (sys_clock_settime, sys_clock_gettime, sys_clock_nanosleep): Use it. From Ulrich Drepper . Fixes RH#129378. * system.c (personality_options): Hard-code values here. Don't #include at all. Fixes RH#130965 and Debian bug #40588. * file.c (print_xattr_val): New function to show attribute values. (sys_setxattr, sys_fsetxattr, sys_getxattr, sys_fgetxattr): Use it. From Ulrich Drepper . Fixes RH#131177. 2004-07-12 Roland McGrath * configure.ac, NEWS: Version 4.5.6. * strace.spec, debian/changelog: 4.5.6-1. * Makefile.am (EXTRA_DIST): Add linux/sparc64 files. * debian/rules: On sparc-linux, build strace64 as well. From Ben Collins . Fixes Debian bug #254728. 2004-07-07 David S. Miller * linux/sparc/syscallent.h: Sync with reality. * linux/sparc/syscall.h (sys_sendfile64, sys_futex, sys_gettid, sys_sched_setaffinity, sys_sched_getaffinity, sys_setxattr, sys_lsetxattr, sys_fsetxattr, sys_getxattr, sys_lgetxattr, sys_fgetxattr, sys_listxattr, sys_llistxattr, sys_flistxattr, sys_removexattr, sys_lremovexattr, sys_fremovexattr, sys_remap_file_pages, sys_readahead, sys_tgkill, sys_statfs64, sys_fstatfs64, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep, sys_timer_create, sys_timer_settime, sys_timer_gettime): New declarations. * linux/sparc64/dummy2.h, linux/sparc64/syscallent2.h, linux/sparc64/syscall.h, linux/sparc64/errnoent.h, linux/sparc64/errnoent1.h, linux/sparc64/errnoent2.h, linux/sparc64/ioctlent.h, linux/sparc64/ioctlent1.h, linux/sparc64/ioctlent2.h, linux/sparc64/signalent.h, linux/sparc64/signalent.h, linux/sparc64/signalent.h, linux/sparc64/signalent1.h, linux/sparc64/signalent2.h, linux/sparc64/syscall1.h, linux/sparc64/syscallent.h, linux/sparc64/syscallent1.h: New files. * defs.h (LINUXSPARC): Define also when SPARC64. (LINUX && SPARC64): Set SUPPORTED_PERSONALITIES to 3. Ignore SIGTRAP after execve by defining TCB_WAITEXECVE. Define possibly missing __NR_exit_group. Declare getrval2. * configure.ac (sparc64): New architecture case. * file.c (stat_sparc64): New structure. (printstat_sparc64): New output routine for that. (printstat): Call it, if personality is 2. (printstat64): Likewise. * util.c: Conditionalize ptrace defines on LINUXSPARC not LINUX && SPARC. (SPARC64 && LINUX): Define r_pc to r_tpc, and PTRACE_FOOREGS to PTRACE_FOOREGS64 so that more sparc code can be shared between 64-bit and 32-bit. (_hack_syscall5): Correct trap number when SPARC64. (PTRACE_WRITE{TEXT,DATA}): Add SPARC64 to ifdef guard. (getpc): Handle SPARC64 && LINUX. (printcall): Likewise. (arg fetching/setting): Use same code for SPARC64 LINUX as for SPARC. (setbpt): Handle SPARC64 && LINUX. (clearbpt): Likewise. * signal.c: Conditionalize ptrace defines on SPARC and SPARC64. (SPARC64 && LINUX): Define r_pc to r_tpc, and PTRACE_FOOREGS to PTRACE_FOOREGS64 so that more sparc code can be shared between 64-bit and 32-bit. (m_siginfo): Use same definition on SPARC64 as SPARC. (sys_sigreturn): Handle LINUX && SPARC64. * syscall.c: Conditionalize ptrace defines on SPARC and SPARC64. (SPARC64 && LINUX): Define r_pc to r_tpc, and PTRACE_FOOREGS to PTRACE_FOOREGS64 so that more sparc code can be shared between 64-bit and 32-bit. (getscno): Use same static state on SPARC64 as SPARC, and add SPARC64 handling. (get_error): Handle LINUX && SPARC64. (force_result): Likewise. (syscall_enter): Likewise. (trace_syscall): Handle sys_socketcall and sys_ipc on SPARC64 just like SPARC. (getrval2): Handle LINUX && SPARC64. * process.c: Conditionalize ptrace defines on SPARC and SPARC64. (SPARC64 && LINUX): Define r_pc to r_tpc, and PTRACE_FOOREGS to PTRACE_FOOREGS64 so that more sparc code can be shared between 64-bit and 32-bit. (change_syscall): Handle LINUX && SPARC64. (struct_user_offsets): Ifdef out those which do not exist on SPARC64. * net.c (sys_pipe): Handle LINUX && SPARC64. * ioctl.c: Fix initializer typo for nioctlents2, was nioctlents1 by accident. 2004-06-28 Andreas Schwab * process.c (internal_exec): Move TCB_WAITEXECVE handling here. (sys_execve): Remove it here. 2004-07-12 Roland McGrath * Makefile.am (EXTRA_DIST): Add linux/sh64/syscallent.h. * debian/control (Section): Move to utils, matching Debian override. * net.c (addrfams): Make variable global. * sock.c (sock_ioctl): Decode the arguments for SIOCGIFNAME, SIOCGIFINDEX, and SIOCGIFCONF. From Ulrich Drepper . Fixes RH#126917. * linux/ioctlsort.c: Add some #includes. [POWERPC]: Kludge out high bits. * linux/ia64/ioctlent.h: Regenerated using RHEL3 headers. * linux/powerpc/ioctlent.h: Likewise. 2004-07-11 Roland McGrath * linux/ioctlent.sh: Replace asm with $asm in all places. * configure.ac: Add I386 as AM_CONDITIONAL. * Makefile.am [LINUX]: Add maintainer-mode rules to regenerate the ioctlent.h file. 2004-07-08 Roland McGrath * resource.c (sys_quotactl): Truncate first argument to 32 bits, since that's what the kernel will do. 2004-07-07 Roland McGrath * linux/ioctlent.sh: Take optional second argument to use as directory name in place of `asm'. 2004-06-27 Roland McGrath * configure.ac, NEWS: Version 4.5.5. * strace.spec, debian/changelog: 4.5.5-1. 2004-06-22 Roland McGrath * syscall.c (syscall_fixup) [LINUX && X86_64]: For 32-bit process, sign extend the low 32 bits of RAX to 64 bits. Fixes RH#126547. * syscall.c (force_result): [LINUX && X86_64]: Fix RAX*4 -> RAX*8. 2004-06-03 Roland McGrath * configure.ac, NEWS: Version 4.5.4. * strace.spec, debian/changelog: 4.5.4-1. * net.c (domains): Add many PF_* values #ifdef PF_*. (addrfams): Add many AF_* values #ifdef AF_*. Fixes Debian bug #250506. 2004-05-02 Dmitry V. Levin * linux/ioctlsort.c (compare): When ioctl codes equal, compare names. (main): Print a note that program output is generated by ioctlsort. * linux/ioctlent.sh: Build the list of ioctls defined in linux/fb.h (0x46..), linux/kd.h (0x4B..), linux/cdrom.h (0x53..), asm/ioctls.h (0x54..), linux/vt.h (0x56..), linux/videotext.h (0x71..), linux/videotext.h (0x72..), asm/sockios.h (0x89..), linux/sockios.h (0x89..), linux/wireless.h (0x8B..). * linux/ioctlent.h: Regenerated from linux-2.6.5. Fixes RH#122257. 2004-06-03 Roland McGrath * debian/control (Architecture): Add amd64. Fixes Debian bug #246568. * strace.c (main) [LINUX]: Expand TCBTAB as necessary for threads attached. Attach threads only under -f. Set TCB_FOLLOWFORK in them. (expand_tcbtab): New function, broken out of ... * process.c (fork_tcb): ... here, call that. * defs.h: Declare expand_tcbtab. 2004-04-19 Roland McGrath * process.c (printstatus): Add a space before | in output. 2004-04-16 Roland McGrath * configure.ac: Version 4.5.3. * strace.spec, debian/changelog: 4.5.3-1. 2004-03-18 Dmitry V. Levin * resource.c (sys_quotactl) [LINUX]: Cast arithmetic shift operand from long to unsigned long, to fix output of the quotactl command parser. Fixes RH#118694. 2004-04-16 Roland McGrath * linux/s390/ioctlent.h, linux/s390x/ioctlent.h: Update DASD ioctls. From Maxim Shchetynin . * configure.ac: Check for . * ipc.c (sys_mq_open, printmqattr) [! HAVE_MQUEUE_H]: Don't try to decode struct mq_attr. * NEWS: Mention mq support. * linux/syscall.h: Support new mq_* syscalls on Linux. * linux/syscallent.h: Likewise. * linux/dummy.h: Likewise. * ipc.c: Likewise. * time.c (printsigevent): Handle SIGEV_THREAD. From Ulrich Drepper . Fixes RH#120701. 2004-04-13 Roland McGrath * net.c (msg_flags): Grok MSG_FIX, MSG_SYN, MSG_RST, MSG_NOSIGNAL, MSG_MORE. From Ulrich Drepper . Fixes RH#120541. * process.c (printstatus): Mask out bits presented symbolically, and print "| 0xnnn" if the remaining bits are not all zero. Fixes Debian bug #240062. * process.c (print_affinitylist): Rewritten to handle indirect values. (sys_sched_setaffinity, sys_sched_getaffinity): Update callers. From Ulrich Drepper . Fixes RH#118685. * acinclude.m4: Quote first argument to AC_DEFUN in all cases. 2004-04-08 Roland McGrath * strace.c (main) [LINUX]: When attaching for -p, look in /proc/PID/task for all threads and attach them as presumed CLONE_THREAD children. * NEWS: Mention the feature. Fixes RH#120462. 2004-03-02 Roland McGrath * util.c (setbpt): Fix one missed spot to use new arg0_index macro. From Michael Holzheu . * debian/control (Standards-Version): Update to 3.6.1. 2004-03-01 Roland McGrath * configure.ac, NEWS: Version 4.5.2. * strace.spec, debian/changelog: 4.5.2-1. * strace.c (main): Avoid potential buffer overruns from ludicrous arguments or PATH values. * syscall.c (qual_signal): Bail out for too-long string. * mem.c [LINUX]: -> Fixes Debian bug #223207. * linux/sparc/syscall.h: Copy linux/syscall.h decls of sys_sched_*. * configure.ac: Check for `struct user_desc' in . * process.c [HAVE_STRUCT_USER_DESC]: Use struct user_desc in place of struct modify_ldt_ldt_s. * mem.c [HAVE_STRUCT_USER_DESC]: Likewise. * system.c (sysctl_vm): Conditionalize VM_* macro uses, add some more. From Tim Yamin . * process.c (sys_execve): Clear instead of set TCB_WAITEXECVE on erring syscall. * configure.ac: Check for `struct pt_all_user_regs' and `struct ia64_fpreg' in . * util.c, process.c, syscall.c, signal.c: Work around conflicts between and for defining those types. * process.c (struct_user_offsets) [LINUX && IA64]: Conditionalize PT_AR_CSD and PT_AR_SSD uses in case of older kernel headers. * util.c [LINUX] (arg0_index, arg1_index): New macros. [S390 || S390X]: Define them with inverted values. (setbpt): Use them for u_arg indices. 2004-02-26 Andreas Schwab * defs.h [LINUX && IA64]: Declare getrval2 also on IA64. * net.c (sys_pipe) [LINUX && IA64]: For IA64 use the two return values. * syscall.c (getrval2) [LINUX && IA64]: Implement for IA64. 2004-03-01 Roland McGrath * linux/dummy.h (sys_sched_getscheduler, sys_sched_setparam, sys_sched_getparam, sys_sched_setscheduler, sys_sched_getscheduler, sys_sched_get_priority_max, sys_sched_get_priority_min): Remove macros. * process.c [LINUX] (sys_sched_getscheduler, sys_sched_setparam, sys_sched_getparam, sys_sched_setscheduler, sys_sched_getscheduler, sys_sched_get_priority_min): New functions. From Ulrich Drepper . Fixes RH#116990. 2004-02-20 Roland McGrath * linux/hppa/syscallent.h: Update some syscalls. From Randolph Chung . Fixes Debian bug #231632. 2003-12-31 David Mosberger * process.c (internal_exit): For ia64, also recognize IA-32 252 as exit_group(). (change_syscall): For IA64, also support changing IA-32 syscalls. * syscall.c (internal_syscall): For IA64, also recognize IA-32 syscall 252 (exit_group) as an internal_exit() syscall. * util.c (SYS_fork): For IA64, define them to the IA-32 syscall number. (SYS_vfork): Likewise. (arg_setup): For IA64 version, also support IA-32 syscalls. (get_arg0): Likewise. (get_arg1): Likewise. (set_arg0): Likewise. (set_arg1): Likewise. 2004-02-15 Anton Blanchard * linux/powerpc/syscallent.h: Add rtas call. Shift multiplexed syscalls to start at 300, we are already about to hit 256 real syscalls. * linux/syscall.h: SYS_socket_subcall is now 300 for [POWERPC]. 2004-02-19 Roland McGrath * strace.c (main): Use TCP->pid, not PID, in -p message. Fixes Debian bug #229802. 2004-01-13 Roland McGrath * syscall.c (force_result) [LINUX] [S390 || S390X]: Remove bogus upeek call. * stream.c (internal_stream_ioctl): Fix typo strict -> struct. Reported by Petter Reinholdtsen . 2003-12-31 David Mosberger * process.c (struct_user_offsets) [IA64]: Fix up register name list. 2003-12-14 Anton Blanchard * file.c (sys_getdents64): Don't cast d_ino and d_off to unsigned long. Use %llu formats for them. * file.c [LINUX] (fsmagic): Add SYSFS_MAGIC. * linux/powerpc/syscallent.h: Update to include recently added syscalls. * syscall.c (get_error) [POWERPC]: Cast result to unsigned long for ppc64, we were misreporting syscalls that really succeeded as having failed. 2004-01-13 Roland McGrath * strace.1: Remove comment about vfork on Linux. Fixes Debian bug #223390. * file.c (direnttypes): Define under [LINUX] as well. Add DT_UNKNOWN. (sys_getdents64) [LINUX]: Print d_type field. 2003-12-15 Dmitry V. Levin * strace.c (trace) [WCOREDUMP]: Show coredump status of the killed process if available. Fixes RH#112117. 2003-11-13 Roland McGrath * configure.ac, NEWS: Version 4.5.1. * strace.spec, debian/changelog: 4.5.1-1. 2003-09-06 Dmitry V. Levin * defs.h (ioctl_lookup): Prototype change. * ioctl.c (ioctl_next_match): New function. * defs.h: Declare it. * io.c (sys_ioctl): Use it, to display all possible ioctl names when there's more than one match. * ioctl.c (ioctl_lookup): Likewise. * stream.c (internal_stream_ioctl): Likewise. Patch from Solar Designer . 2003-11-13 Roland McGrath * linux/sh/syscallent.h: Use sys_setgroups32, sys_getgroups32. * linux/sh64/syscallent.h: Likewise. 2003-09-06 Dmitry V. Levin Fixes for RH#105359. * util.c (printuid): New function. * defs.h: Declare it. * file.c (sys_chown): Use it. * file.c (sys_fchown): Likewise. * process.c (sys_setreuid, sys_setregid, sys_setresuid, sys_setresgid): Likewise. * linux/syscallent.h: Better handle getgid32, geteuid32, getegid32, setreuid32, setregid32, getgroups32, setgroups32, fchown32, setresuid32, getresuid32, setresgid32, getresgid32, chown32, setuid32, setgid32, setfsuid32, setfsgid32. * process.c [LINUX]: Define GETGROUPS32_T. * process.c [LINUX] (sys_setgroups32, sys_getgroups32): New functions. * linux/syscall.h (sys_setgroups32, sys_getgroups32): Declare them. 2003-11-11 Roland McGrath * strace.c (main): Bail with usage error for missing command before we open the -o file or fiddle uids. 2003-11-06 Roland McGrath * strace.c (main): Treat piped output more like file output. Disallow -ff with piped output. Fixes RH#105366. Reported by Dmitry V. Levin * strace.c (tprintf): Check result of vfprintf and use perror when it fails while not writing to stderr itself. Fixes Debian bug #218762. * net.c (printsock): Fix typo in #ifdef AF_NETLINK. From Ulrich Drepper . 2003-11-01 Roland McGrath * syscall.c (trace_syscall) [LINUX]: Calculate ONE_TICK once using setitimer rather than hard-coding a value based on HZ. Fixes RH#108012, reported by Florian La Roche . 2003-10-21 Roland McGrath * strace.1: Fixed a few spelling errors. Fixes Debian bug #217008. * syscall.c: Revert last change, was broken. 2003-10-01 Roland McGrath * process.c (internal_clone): Don't suspend parent when call requested a specific PID that is not a traced child. * signal.c [LINUX] (parse_sigset_t): Rewrite to process hex strings from right to left so we don't have to presume the size. Reported by David Woodhouse . 2003-09-25 Roland McGrath * mem.c (mmap_prot) [PROT_SEM, PROT_GROWSDOWN, PROT_GROWSUP]: Include these in the table if they are defined. 2003-09-24 Roland McGrath * configure.ac, NEWS: Version 4.5. * strace.spec, debian/changelog: 4.5-1. * syscall.c (get_scno) [LINUX] [S390 || S390X]: Bail out of instruction decoding branch if TCB_INSYSCALL is clear. Reported by . * linux/ioctlent.h: Swap order of overloaded TC* and SNDCTL_* values. 2003-09-23 Roland McGrath * strace.spec: On ppc64 (maybe others later), create an strace64 package as well containing just /usr/bin/strace64. * signal.c (sprintsigmask): Print RT_%u for __SIGRTMIN..__SIGRTMAX. Fixes RH#104365. 2003-08-21 Roland McGrath * linux/syscallent.h: Fix mlock argument count. Fixes RH#101499. * linux/x86_64/syscallent.h: Likewise. * linux/s390/syscallent.h: Likewise. * linux/s390x/syscallent.h: Likewise. 2003-07-28 Daniel Jacobowitz * defs.h (ALIGN64): Define for MIPS. * io.c (PREAD_OFFSET_ARG): Define. (sys_pread, sys_pwrite): Use it. * process.c (struct_user_offsets) [SH]: Check whether REG_XDREG0 is defined. * linux/sh/syscallent.h (pread, pwrite): Take six arguments. (truncate64, ftruncate64): Pretty-print. * linux/mips/syscallent.h (pread, pwrite): Take six arguments. (truncate64, ftruncate64): Take four arguments. 2003-07-17 Roland McGrath * configure.ac, NEWS: Version 4.4.99. * strace.spec, debian/changelog: 4.4.99-1. 2003-07-15 Anton Blanchard * ipc.c: Add SHM_HUGETLB field. Mask out permission bits in msgget, semget and shmget before printing resource_flags. Mask execute permission bits (even though we dont currently use them). 2003-07-17 Roland McGrath * linux/powerpc/syscallent.h (tgkill): New at 250. * linux/syscallent.h: truncate64/ftruncate64 need 3 args. From Ulrich Drepper . * linux/syscallent.h: Handle statfs64, fstatfs64, utimes. * file.c (printstatfs): Print f_fsid and f_frsize. [LINUX] (printstatfs64, sys_statfs64, sys_fstatfs64): New functions. * linux/syscall.h: Add decls. From Ulrich Drepper . 2003-07-09 Roland McGrath * linux/ia64/syscallent.h (tgkill): New at 1235. 2003-07-05 Richard Henderson * process.c (sys_clone): Order arguments for alpha the same as x86_64. * syscall.c (ERESTART_RESTARTBLOCK): New. (trace_syscall): Print it. * linux/alpha/syscallent.h (osf_syscall): Name properly. (osf_set_program_attributes): Fix typo. (osf_nfssvc): Likewise. (osf_sigsendset): Likewise. (getdents64, gettid, readahead, tkill, setxattr, lsetxattr, fsetxattr, getxattr, lgetxattr, fgetxattr, listxattr, llistxattr, flistxattr, removexattr, lremovexattr, fremovexattr, futex, sched_setaffinity, sched_getaffinity, tuxcall, io_setup, io_destroy, io_getevents, io_submit, io_cancel, exit_group, lookup_dcookie, epoll_create, epoll_ctl, epoll_wait, remap_file_pages, set_tid_address, restart_syscall, fadvise, timer_create, timer_settime, timer_gettime, timer_getoverrun, timer_delete, clock_settime, clock_gettime, clock_getres, clock_nanosleep, semtimedop): New. 2003-07-08 Roland McGrath * signal.c (sys_tgkill): New function. * linux/syscall.h: Declare it. * linux/syscallent.h: Add tgkill. 2003-06-27 Roland McGrath * configure.ac: Check for type `struct __old_kernel_stat'. * file.c (convertoldstat, printoldstat): Define under [LINUX && HAVE_STRUCT___OLD_KERNEL_STAT] rather than a list of archs. (sys_oldstat, sys_oldfstat, sys_oldlstat): Likewise. * linux/dummy.h [! HAVE_STRUCT___OLD_KERNEL_STAT] (sys_oldstat, sys_oldfstat, sys_oldlstat): #define to printargs. 2003-06-26 Roland McGrath * configure.ac: SHMEDIA -> SH64 * defs.h: Likewise. * mem.c: Likewise. * process.c: Likewise. * sock.c: Likewise. * syscall.c: Likewise. * util.c: Likewise. * linux/shmedia/syscallent.h: Moved to ... * linux/sh64/syscallent.h: ... here. * config.guess: Update from canonical version, timestamp 2003-06-17. * config.sub: Likewise. * syscall.c (force_result) [LINUX] [ARM]: Fix variable usage. From: Joshua Neal . * process.c [LINUX] (sys_futex): Grok FUTEX_REQUEUE and print 5th arg. * linux/syscallent.h: sys_futex argument count is now 5, not 4. * linux/ia64/syscallent.h: Likewise. * linux/powerpc/syscallent.h: Likewise. * linux/s390/syscallent.h: Likewise. * linux/s390x/syscallent.h: Likewise. * linux/x86_64/syscallent.h: Likewise. From Jakub Jelinek . * syscall.c (get_scno) [S390 || S390X]: Fix old vs new mode detection. From Michael Holzheu . 2003-06-23 Roland McGrath * net.c (sys_socket): Decode protocol for PF_INET6 same as PF_INET. From Ulrich Drepper . 2003-06-10 Roland McGrath * configure.ac, NEWS: Version 4.4.98. * strace.spec, debian/changelog: 4.4.98-1. 2003-06-09 Roland McGrath * linux/s390x/syscallent.h: Update many syscalls. * linux/syscall.h (SYS_socket_subcall): Update [S390X] value. * linux/s390/syscallent.h: Update many syscalls. * linux/syscall.h (SYS_socket_subcall): Update [S390] value. * linux/shmedia/syscallent.h: New file. From Stephen Thomas . * strace.c (trace): Print a message and newline for a WIFEXITED report from the process we just printed an unterminated syscall line for. 2003-06-03 Roland McGrath * util.c (printcall) [LINUX]: Fix typo [IA62] -> [IA64]. Linux/ARM improvements from Russell King : * defs.h [LINUX] (TCB_WAITEXECVE): Define for [ARM] too. * process.c (struct_user_offsets) [LINUX] [ARM]: Add ARM registers. * signal.c [LINUX] (sys_sigreturn) [ARM]: New case. * syscall.c (get_scno, syscall_fixup) [LINUX] [ARM]: Case rewritten. (get_error) [LINUX] [ARM]: Update. (syscall_enter) [LINUX] [ARM]: New case. * util.c (printcall) [LINUX] [ARM]: New case. * debian/control (Standards-Version): Update to 3.5.10. * strace.c (main): In PATH search, accept only a regular file with execute bits set. Fixes Debian bug #137103. 2003-06-02 Roland McGrath * strace.c (main): Set -q when given -o and not -p, and not when not given -o, to match what the man page always said. Fixes Debian bug #47113, #153678. * configure.ac, NEWS: Version 4.4.97. * strace.spec, debian/changelog: 4.4.97-1. * configure.ac, defs.h, mem.c, process.c, sock.c, syscall.c, util.c: Merged in SHmedia port from Stephen Thomas . * config.guess: Update from ftp://ftp.gnu.org/pub/gnu/config/, timestamp 2003-05-22. * config.sub: Likewise, timestamp 2003-05-24. 2003-05-22 Roland McGrath * defs.h (struct tcb): New member `nzombies'. * strace.c (alloctcb): Initialize it. (droptcb): Increment our parent's zombie count. * process.c (internal_wait): Don't go into TCB_SUSPENDED if the process has zombies it can reap. On the way out, if we reaped an untraced process, decrement the zombie count. * process.c (sys_clone): Mask CSIGNAL out of flags and print that separately using signame. * process.c (internal_clone) [TCB_CLONE_THREAD]: Use ARG_FLAGS instead of literal 0 for index. Consult the right flags without clobbering anything when we reparent the new child to the caller's parent thread. * linux/s390/syscallent.h: Fix sys_clone argument count. * linux/s390x/syscallent.h: Likewise. * linux/mips/syscallent.h: Likewise. * linux/alpha/syscallent.h: Likewise. * linux/powerpc/syscallent.h: Likewise. * linux/sh/syscallent.h: Likewise. * linux/sparc/syscallent.h: Likewise. * linux/hppa/syscallent.h: Likewise. * process.c [LINUX] [S390 || S390X] (ARG_CTID, ARG_TLS): Fix swapped indices. Reported by Jakub Jelinek . * signal.c [LINUX] (SI_SIGIO, SI_TKILL): New macros. [LINUX || SVR4] (siginfo_codes): Add strings for them. * process.c (print_affinitylist): Fix loop condition. Reported by Ian Wienand . 2003-04-10 Roland McGrath * syscall.c (qual_desc): Return zero after parsing number. From Rob Leslie , fixes Debian bug #188379. 2003-04-07 Roland McGrath * linux/syscallent.h: Handle semtimedop subcall of ipc syscall. * linux/syscall.h: Likewise. * ipc.c [LINUX] (sys_semtimedop): New function. From Ulrich Drepper . * ipc.c (sys_semget): Mask off permission bits for resource_flags. From Ulrich Drepper . 2003-04-01 Philippe De Muyter * sock.c, stream.c: Check #ifdef LINUX, not linux. * file.c: Always provide sys_*attr, regardless of #ifdef XATTR_CREATE. 2003-03-30 Roland McGrath * configure.ac, NEWS: Version 4.4.96. * strace.spec, debian/changelog: 4.4.96-1. 2003-02-26 Stuart Menefy Various fixes for SuperH [SH]: * mem.c (sys_old_mmap): mmap() parameters passed in registers * net.c (sys_pipe), syscall.c (getrval2): pipe() results returned in registers * process.c (change_syscall): Fixed register which holds system call number * util.c (arg0_offset, arg1_offset): provide definition * Makefile.am: Added new files in linux/sh * linux/sh/syscallent.h: New file. * linux/sh/errnoent.h: New file. * linux/sh/ioctlent.h: New file. * linux/sh/signalent.h: New file. * linux/ioctlent.sh: Take an arg for location of header files * syscallent.sh: Replaced lost $ 2003-03-30 Roland McGrath * time.c [LINUX]: Handle new Linux 2.5 clock/timer syscalls. * linux/syscall.h, linux/syscallent.h, linux/dummy.h: Likewise. From Ulrich Drepper . * linux/syscallent.h: Use sys_getrlimit for 191. Use name "old_getrlimit" for 76. Reported by Ulrich Drepper . 2003-03-18 Roland McGrath * process.c [LINUX] (sys_clone): Don't dereference parent_tid argument. 2003-03-17 Roland McGrath * linux/x86_64/syscallent.h: clone takes 5 args. * process.c [LINUX] (sys_clone) [X86_64]: Fix argument order. 2003-03-15 Roland McGrath * linux/x86_64/syscallent.h: Add exit_group syscall at 231. 2003-03-14 Roland McGrath * linux/x86_64/syscallent.h: Update and add many 2.5 syscalls. * linux/ia64/syscallent.h: clone takes 5 arguments. * process.c [LINUX && IA64] (ARG_*): Update for 2.5 clone calls. 2003-03-12 Roland McGrath * linux/ia64/syscallent.h: Fix arg counts for clone and clone2. Use sys_clone for clone2. * linux/syscall.h: Don't declare sys_clone2. * process.c (sys_clone): Rewritten to handle both flavors, print all extra args depending on flag bits. (sys_clone2): Function removed. * linux/ia64/syscallent.h: Add a bunch of 2.5 syscalls. 2003-03-04 Roland McGrath * syscall.c (get_scno) [IA64]: Do TCB_WAITEXECVE check only when TCB_INSYSCALL is clear, like other platforms do. 2003-03-04 Ulrich Drepper * mem.c [LINUX] (sys_remap_file_pages): New function. * linux/syscall.h: Declare it. * linux/syscallent.h: Use it. * linux/powerpc/syscallent.h: Likewise. * process.c [LINUX] (sys_futex): Omit final if op is not FUTEX_WAIT. 2003-02-26 Roland McGrath * configure.ac: Fix typo in netinet/in.h check. Also include and before . Reported by Alex Semenyaka . 2003-02-24 Roland McGrath * configure.ac, NEWS: Version 4.4.95. * strace.spec, debian/changelog: 4.4.95-1. * process.c (sys_getresgid): Fix typos in argument access. 2003-02-23 Roland McGrath * process.c (sys_getresuid): Fix typos in argument access. Reported by Anton Blanchard . 2003-02-19 Roland McGrath * configure.ac, NEWS: Version 4.4.94. * strace.spec, debian/changelog: 4.4.94-1. * version.c: Removed. * Makefile.am (strace_SOURCES): Remove it. * strace.c: Use PACKAGE_NAME and VERSION macros instead of version var. FreeBSD rfork support changes from Russ Cox : * syscall.c (internal_syscall): Handle SYS_rfork with internal_fork. * process.c (internal_fork) [SYS_rfork]: Bail if RFPROC flag not set. 2003-01-23 Roland McGrath * signal.c: Reorder #ifdefs so HAVE_ASM_SIGCONTEXT_H doesn't matter on SPARC, which doesn't use the header regardless. * util.c [LINUX && SPARC]: Do renaming kludges around like signal.c does. * linux/sparc/syscall.h: Declare sys_getdents64, sys_llseek. * linux/dummy.h [! SYS_getpmsg] (sys_getpmsg): #define to printargs. [! SYS_putpmsg] (sys_putpmsg): Likewise. * process.c: Reorder includes to put sys/reg.h before linux/ptrace.h, since they can conflict. 2003-01-21 Roland McGrath * strace.c (usage): Omit -z, since it has never worked properly. * NEWS: Likewise. * strace.c (main): Grok new option `-E var=val' or `-E var' to put var=val in environ or to remove var, respectively. (usage): Mention it. * strace.1, NEWS: Document it. * configure.ac, NEWS: Version 4.4.93. * strace.spec, debian/changelog: 4.4.93-1. * strace.spec (Source0): Use strace-VERSION.tar.bz2 now. 2003-01-20 Roland McGrath * defs.h [LINUX] [S390 || S390X] (TCB_WAITEXECVE): Define it. * syscall.c (get_scno, syscall_fixup) [LINUX] [S390 || S390X]: Handle TCB_WAITEXECVE state with special kludges. * process.c [LINUX] (sys_clone) [S390 || S390X]: Argument order is reversed from other architectures. * process.c (sys_execve) [LINUX]: Make setting TCB_WAITEXECVE flag conditional on [TCB_WAITEXECVE] instead of list of processors. * util.c (restore_arg0): Evaluate args in no-op defns. * util.c [S390 || S390X] (arg0_offset, arg1_offset): Fix definitions for clone call on S390. From Michael Holzheu . 2003-01-17 Anton Blanchard * util.c [LINUX] (setbpt): Handle SYS_vfork like SYS_fork. * linux/syscall.h (SYS_socket_subcall): 256 also for POWERPC. 2003-01-14 Roland McGrath * linux/powerpc/errnoent.h: Add missing errnos. * linux/powerpc/ioctlent.h: Update ioctl values. From Anton Blanchard . * io.c [LINUX] (sys_pread, sys_pwrite): Fix last change. From Anton Blanchard . * linux/hppa/syscallent.h: Use sys_getdents64, sys_truncate64, sys_ftruncate64, instead of printargs, for those syscalls. * linux/mips/syscallent.h: Likewise. * linux/powerpc/syscallent.h: Likewise. * linux/s390/syscallent.h: Likewise. * linux/sparc/syscallent.h: Likewise. * linux/syscall.h (SYS_socket_subcall): Only 256 for S390, S390X. All others at the moment use linux/syscallent.h, where it's 300. * strace.1: Update bug reporting info. * resource.c [LINUX] (quotacmds): Grok new command encodings. From Nathan Scott . * configure.ac, NEWS: Version 4.4.92. * strace.spec, debian/changelog: 4.4.92-1. * configure.ac: Match powerpc* (includes powerpc64), and don't match ppc (never comes out of config.sub). * process.c (sys_ptrace): Use #lx format for address argument. [POWERPC]: Use sizeof(unsigned long) in place of 4 for multipliers. * process.c [POWERPC]: Likewise. * signal.c (sys_sigreturn) [POWERPC]: Likewise. * syscall.c (get_scno) [POWERPC]: Likewise. * util.c [POWERPC]: Likewise. (printnum): Use long for NUM. From Anton Blanchard . * defs.h (ALIGN64): Fix defn for PPC, same as FreeBSD one. * util.c [LINUX] (restore_arg0, restore_arg1): New macros, defined appropriately via set_arg0 or no-ops for each architecture. (clearbpt): Use those instead of set_arg0 and set_arg1. * defs.h [_LARGEFILE64_SOURCE] (_LFS64_LARGEFILE): Define it. * linux/syscallent.h: Use sys_getdents64, sys_truncate64, sys_ftruncate64, instead of printargs, for those syscalls. * process.c: Use regardless of . (sys_ptrace): Use printxval. (ptrace_cmds): Make PTRACE_GETREGS et al conditional on #ifdef PTRACE_* instead of only #ifdef SUNOS4. Add PTRACE_[GS]ETFPXREGS. * ipc.c (PRINTCTL): New macro. #ifdef IPC_64, factor out the flag and print it before using printxval. (sys_msgctl, sys_semctl, sys_shmctl): Use it. 2003-01-13 Roland McGrath * config.guess: Update from ftp://ftp.gnu.org/pub/gnu/config/, timestamp 2003-01-10. * config.sub: Likewise, timestamp 2003-01-03. * install-sh: Update from Automake 1.7.2. * linux/powerpc/signalent.h: Add SIGRTMIN. From Anton Blanchard . * linux/powerpc/syscallent.h: Add missing system calls. Decode more system calls, we were just printargs for many things. Remove some x86-specific system calls. Remove two syscalls between the socket and ipc syscalls, it was resulting in all IPC syscalls being off by two. * ioctl.c (ioctl_decode) [POWERPC]: Decode term ioctls like Alpha. From Anton Blanchard . * defs.h [POWERPC] (UESP, EIP, EAX, ORIG_EAX): Remove this cruft. [LINUX && POWERPC && !__powerpc64__] (ALIGN64): New macro. * io.c (sys_pread, sys_pwrite): Use ALIGN64. From Anton Blanchard . * term.c [LINUX]: Get kernel definition of struct termios. From Anton Blanchard . * linux/ioctlent.sh: Look in sound/ directory too. From Anton Blanchard . * desc.c (printflock64): Fix ADDR argument type. From Anton Blanchard . * strace.c [! HAVE_STRSIGNAL]: Clean up #ifdefs on decls for sys_siglist and _sys_siglist. Reported by John Hughes . * net.c: HAVE_OPTHDR -> HAVE_STRUCT_OPTHDR Reported by John Hughes . * linux/syscall.h [ARM] (SYS_socket_subcall): Set to 300. 2003-01-10 Roland McGrath * configure.ac, NEWS: Version 4.4.91. * strace.spec, debian/changelog: 4.4.91-1 * util.c [LINUX && X86_64] (arg0_offset, arg1_offset): Use correct values for x86-64, conditional on current_personality. * strace.c (droptcb): Clear flags word before calling rebuild_pollv. * configure.ac: Check struct T_conn_res for QUEUE_ptr or ACCEPTOR_id. * stream.c (print_transport_message): Use #ifdefs for those members. * strace.c (rebuild_pollv): Fix typo: struct poll -> struct pollfd. * configure.ac: Fix siginfo_t/sig_atomic_t checks. Use prerequisite #include for netinet/*.h checks. * strace.c (pfd2tcb): Fix for new tcbtab type. (rebuild_pollv): Likewise. (detach): Put variables used under [LINUX] inside #ifdef. * process.c (change_syscall) [POWERPC]: Add missing return. * util.c [POWERPC] (arg0_offset): Set to 4*PT_R3, not 4*PT_ORIG_R3. * strace.spec: New file. * debian/changelog: 4.4.90-1 * debian/rules (binary-arch): Depend on build. (clean): Don't try to run Makefile.in. * debian/control (Standards-Version): Now 3.5.8. * configure.ac: Diddle CFLAGS after AC_PROG_CC, not before. 2003-01-09 Roland McGrath * syscall.c (force_result) [S390 || S390X]: Fix typo. * debian/control: Update Maintainer: field. 2003-01-08 Roland McGrath * NEWS: Update for 4.4.90 test release. Support for new Linux 2.5 thread features. * defs.h [LINUX]: Define __NR_exit_group if not defined. (struct tcb): New members nclone_threads, nclone_detached, and nclone_waiting. (TCB_CLONE_DETACHED, TCB_CLONE_THREAD, TCB_GROUP_EXITING): New macros. (waiting_parent): Macro removed. (pid2tcb): Declare it. * process.c (internal_clone) [TCB_CLONE_THREAD]: Reparent the new child to our parent if we are a CLONE_THREAD child ourselves. Maintain TCB_CLONE_THREAD and TCB_CLONE_DETACHED flags and counts. (internal_wait) [TCB_CLONE_THREAD]: Factor out detached children when determining if we have any. If TCB_CLONE_THREAD is set, check parent's children instead of our own, and bump nclone_waiting count. (internal_exit) [__NR_exit_group]: Set the TCB_GROUP_EXITING flag if the syscall was exit_group. * syscall.c (internal_syscall): Use internal_exit for exit_group. * strace.c (pid2tcb): No longer static. (alloctcb) [TCB_CLONE_THREAD]: Initialize new fields. (droptcb) [TCB_CLONE_THREAD]: Maintain new fields. If we have thread children, set TCB_EXITING and don't clear the TCB. (resume) [TCB_CLONE_THREAD]: Decrement parent's nclone_waiting. (detach) [TCB_CLONE_THREAD]: When calling resume, check all thread children of our parent that might be waiting for us too. [TCB_GROUP_EXITING] (handle_group_exit): New function. (trace) [TCB_GROUP_EXITING]: Use that in place of detach or droptcb. Revamp -f support for Linux. * util.c [LINUX] (setbpt, clearbpt): New implementations that tweak the system call to be clone with CLONE_PTRACE set. Various new static helper functions. * process.c (internal_clone): Define also #ifdef SYS_clone2. Initialize TCPCHILD->parent field. [CLONE_PTRACE]: Don't do PTRACE_ATTACH here, because it's preattached. Check in case the new child is in the tcb already. (internal_fork) [LINUX]: Just call internal_clone. * strace.c (trace) [LINUX]: Under -f/-F, grok an unknown pid reporting to wait, put it in the TCB with TCB_ATTACHED|TCB_SUSPENDED. * linux/x86_64/syscallent1.h (sys_oldlstat): #define as printargs. * file.c [LINUX]: #undef st_[amc]time in case they are macros. * Makefile.am (AM_CFLAGS): New variable, define to $(WARNFLAGS). * Makefile.am (EXTRA_DIST): Remove debian/postinst and debian/prerm. 2003-01-09 Wichert Akkerman * debian/postinst, debian/prerm: removed, /usr/doc symlink is no longer used * debian/rules: no longer install postinst and prerm * debian/control: do not end summary with full stop (lintian) 2002-12-30 Roland McGrath * Makefile.am (bin_SCRIPTS): New variable, list strace-graph. (EXTRA_DIST): Add missing files. * configure.ac: Fix asm/sigcontext.h check to include prerequisite. * syscall.c (qualify_one): New function. (qual_options): Replace lookup field with qualify, update initializer. (qualify): Update caller. (qual_signal, qual_fault, qual_desc): Rewritten from lookup_*. (qual_syscall): Rewritten lookup_syscall, match name more than once. Fixes RH#70579, bites IA64 -efoo when foo exists on IA32. * version.c (version): Make const, bump to 4.4.90. * strace.c: Update decl. * Makefile.am [LINUX && X86_64]: Remove cruft. * linux/x86_64/errnoent1.h: New file. * linux/x86_64/ioctlent1.h: New file. * linux/x86_64/signalent1.h: New file. * linux/x86_64/syscallent1.h: New file. * linux/x86_64/i386-headers.diff: File removed. * linux/x86_64/makeheaders.sh: File removed. * linux/x86_64/Makefile.in: File removed. * linux/syscallent.h [X86_64]: Disable sanity checks, subcall stuff is already broken for 32-bit personality on x86-64. 2002-12-29 Roland McGrath * configure.ac, Makefile.am: Punt subdirs, handle everything here. * linux/Makefile.am: File removed. * freebsd/Makefile.am: File removed. * sunos4/Makefile.in: File removed. * svr4/Makefile.in: File removed. * linux/alpha/Makefile.in: File removed. * linux/hppa/Makefile.in: File removed. * linux/ia64/Makefile.in: File removed. * linux/powerpc/Makefile.in: File removed. * linux/s390/Makefile.in: File removed. * linux/s390x/Makefile.in: File removed. 2002-12-26 Roland McGrath * syscallent.sh: Grok three flavors of #define line, uniquify. * linux/hppa/syscallent.sh: File removed. * linux/powerpc/syscallent.sh: File removed. * linux/Makefile.am: New file. * linux/Makefile.in: File removed. * freebsd/Makefile.am: New file. * freebsd/i386/Makefile.am: New file. * freebsd/i386/Makefile.in: File removed. 2002-12-22 Roland McGrath Update to Autoconf 2.57, and Automakify with version 1.7. * Makefile.am: New file. * Makefile.in: File removed. * configure.in: Moved to ... * configure.ac: ... here. Update for Autoconf 2.5x and Automake. * aclocal.m4: Moved to ... * acinclude.m4: ... here. Update for Autoconf 2.5x. * acconfig.h: File removed. * AUTHORS: New file, makes automake happy. * autogen.sh: File removed. * README-CVS: Update to recommend autoreconf instead. * file.c: HAVE_ST_* -> HAVE_STRUCT_STAT_ST_*. * net.c: HAVE_SIN6_SCOPE_ID -> HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID, HAVE_MSG_CONTROL -> HAVE_STRUCT_MSGHDR_MSG_CONTROL. * strace.c: *_DECLARED -> HAVE_DECL_* * stream.c: HAVE_* -> HAVE_STRUCT_* * linux/Makefile.in (ioctldefs.h ioctls.h): Use $(SHELL) instead of sh, and use $(srcdir) to find the script. * linux/powerpc/Makefile.in (ioctlent.raw): Find ioctlent.sh in ../. (ioctlsort.o): Use ../ioctlsort.c, not ../../ioctlsort.c. * linux/x86_64/Makefile.in (headers): Renamed to all. * linux/alpha/Makefile.in: Add empty install target. * linux/x86_64/Makefile.in: Likewise. * linux/powerpc/Makefile.in: Likewise. * linux/Makefile.in: Likewise. 2002-12-26 Roland McGrath * defs.h [LINUX && MIPS] (MAX_QUALS): Set to 5000, not 4999. From Daniel Jacobowitz . 2002-12-21 Roland McGrath * linux/syscallent.h: Add some new 2.5 syscall names. Now clone takes 5 args. * process.c [LINUX] (clone_flags): Update with 2.5 flag bits. [LINUX] (sys_clone): Print new args. * mem.c (print_ldt_entry): Make global. * linux/syscall.h [I386 || IA64] (SYS_socket_subcall): Bump to 300 for safety, since up to 260 are already used in 2.5 kernels. * linux/syscallent.h: Update the table. * linux/ia64/syscallent.h: Likewise. * syscall.c (force_result): New function. * process.c (internal_wait): Handle ECHILD exit from wait call with WNOHANG flag set; force the return value to 0 in the inferior when it has live children we are tracing. * NEWS: Mention the bug fix. 2002-12-17 Roland McGrath * linux/ia64/syscallent.h: Remove placeholders 275-298 to catch up with linux/syscallent.h additions. * strace.c (tcbtab): Make this a pointer to pointers, not an array. (tcbtabsize): New variable. (main): Initialize them using dynamic allocation. (alloctcb, main): Use tcbtabsize in place of MAX_PROCS; indirect. (pid2tcb, cleanup): Likewise. [USE_PROCFS] (pollv): Make this a pointer, not an array; make static. (rebuild_pollv): Dynamically allocate the vector. * defs.h (tcbtab): Update decls. (MAX_PROCS): Macro removed, no more static limit on this. * process.c (fork_tcb): New function. (internal_clone, internal_fork): Use it instead of checking nprocs. * strace.c (detach) [LINUX]: Use __WALL (or a second try with __WCLONE) in wait after sending SIGSTOP. 2002-12-16 Roland McGrath * signal.c (sprintsigmask): Increase static buffer size to account for worst possible case. Reported by Daniel Jacobowitz . * process.c [LINUX] (wait4_options): Fix __WCLONE value. Add __WNOTHREAD and __WALL. * strace.c (trace) [LINUX]: Only check errno if wait4 actually fails, so we don't repeat a wait and thus drop a status. Fixes RH#62591. 2002-12-15 Roland McGrath * process.c (setarg) [POWERPC]: Support it. * util.c [POWERPC] (LOOP): Fix value, now 0x48000000 (0: b 0b). Old value was bogus, not even a proper instruction. From Guy M. Streeter . * strace.c (main) [! USE_PROCFS]: Always reset SIGCHLD to SIG_DFL. * configure.in: Don't check for putpmsg. * stream.c (sys_getpmsg, sys_putpmsg): Make these conditional on #ifdef SYS_*, rather than on HAVE_PUTPMSG. * aclocal.m4 (AC_STAT64): Include before in test. Test our own #ifdef LINUX rather than predefined `linux'. * linux/powerpc/syscallent.h: Use sys_llseek for _llseek. * linux/sparc/syscallent.h: Likewise. * linux/hppa/syscallent.h: Likewise. * syscall.c (syscall_enter) [LINUX && POWERPC]: Define PT_ORIG_R3 if not defined, since defines it only #ifdef __KERNEL__. * process.c: Likewise. * desc.c (sys_osf_select): Add missing return type. * syscall.c (trace_syscall): Use strerror, not sys_errlist/sys_nerr. * linux/ia64/syscallent.h: Remove macros for sys_delete_module, sys_nanosleep, both already in linux/dummy.h. * syscall.c (get_scno): Move static `currpers' inside #ifdef X86_64. (trace_syscall): Fix return without value. * linux/syscallent.h: Update table with names of new syscalls io_setup, io_destroy, io_getvents, io_submit, io_cancel. * linux/ia64/syscallent.h: Likewise. * linux/powerpc/syscallent.h: Likewise. * signal.c [LINUX && I386]: Provide SA_RESTORER constant if not defined. If the bit is set, print the sa_restorer field of sigaction. * mem.c: Add sys_{get,set}_thread_area. * linux/syscall.h: Declare them. * linux/syscallent.h: Update the table for these. * linux/dummy.h (sys_modify_ldt): Define only #ifndef I386. (sys_get_thread_area, sys_set_thread_area): New macros #ifndef I386. * configure.in: Check for linux/xattr.h and linux/futex.h headers. * linux/syscall.h: Add sys_* decls for new syscalls getpmsg, putpmsg, readahead, sendfile64, setxattr, fsetxattr, getxattr, fgetxattr, int listxattr, flistxattr, removexattr, fremovexattr, sched_setaffinity, sched_getaffinity, futex. * linux/syscallent.h: Update the table. * io.c: Add sys_sendfile64. * file.c: Add sys_readahead, sys_*xattr. * process.c: Add sys_futex, sys_*affinity. * linux/syscall.h (SYS_socket_subcall): Define to 256 on all machines. (SYS_ipc_subcall): Always SYS_socket_subcall + SYS_socket_nsubcalls. * linux/syscallent.h: Update the table for socket and ipc subcalls. 2002-11-09 Heiko Carstens Bugfix for s390/s390x: * syscall.c: Fixed scno derivation for s390/s390x. 2002-11-06 Michal Ludvig Merged patch from Steven J. Hill to allow the compilation of a native MIPS strace. 2002-11-06 Michal Ludvig From Marty Leisner , rewritten by mludvig: * strace.c (not_failing_only): New. (usage): Added -z switch description. (main): Added -z switch parsing to not_failing_only variable. * syscall.c (trace_syscall): Added not_failing_only handling. 2002-10-08 Heiko Carstens Missing complete changelog for 2002-10-07 commit: * Makefile.in: Added linux/s390, linux/s390x to ALL_SUBDIRS. * acconfig.h: New define for s390x. * config.sub: Added missing define for s390 and new one for s390x. * configure.in: Added new define for s390x. * file.c: Added missing #undef dirent64 and new defines for s390x. * linux/s390: New directory. * linux/s390/Makefile.in: New file. * linux/s390/errnoent.h: New file. * linux/s390/ioctlent.h: New file. * linux/s390/signalent.h: New file. * linux/s390/syscallent.h: New file. * linux/s390x: New directoy. * linux/s390x/Makefile.in: New file. * linux/s390x/errnoent.h: New file. * linux/s390x/ioctlent.h: New file. * linux/s390x/signalent.h: New file. * linux/s390x/syscallent.h: New file. * linux/syscall.h: Added sys_mincore() prototype and added new s390x defines. * process.c: Added s390x defines. (change_syscall): Changed handling for s390. (setarg): Added missing s390/s390x code in setarg(). * signal.c: Added s390x define. (sys_sigreturn): Bugfix in s390/s390x code (wrong number of arguments to sprintsigmask()). * stream.c (internal_stream_ioctl): Changed int cast to long cast, since printstr() expects a long. * syscall.c (decode_subcall): Changed several variables to be long instead of int to match 64 bit requirements. Added s390x defines. (syscall_enter): Changed upeek() call to match s390 and s390x requirements. * util.c: Added s390x defines. 2002-10-07 Michal Ludvig Merged s390x port by Heiko Carstens and bugfixes to s390 by D.J. Barrow. 2002-09-23 Michal Ludvig Merged x86-64 port by Andi Kleen and Michal Ludvig * Makefile.in: New target 'headers'. Failure ignored. * acconfig.h: New defines for x86-64. * configure.in: Ditto. * defs.h: Ditto. * file.c: Ditto. * signal.c: Ditto. * process.c: Added support for x86-64. * util.c: Ditto. * syscall.c: Ditto + added automatic personality switching. * linux/syscall.h: Ditto. * linux/x86_64: New directory. * linux/x86_64/Makefile.in: New file. * linux/x86_64/gentab.pl: Ditto. * linux/x86_64/i386-headers.diff: Ditto. * linux/x86_64/makeheaders.sh: Ditto. * linux/x86_64/syscallent.h: Ditto. * mem.c (print_mmap): Always print arg[4] as int. 2002-09-23 Michal Ludvig * configure.in: Fix regular expressions. * linux/syscall.h: Added missing braces in prototype of sys_getdents64(). * file.c: Use '#ifdef LINUX' instead of '#ifdef linux'. (struct fileflags): Made extern to inhibit compiation warnings. (sys_getdents64): Merged LINUX and SVR4 part. * syscall.c (get_scno): Split multiline string into two distinct strings. 2002-05-24 John Hughes * stream.h, net.h: Avoid possible infinite loop caused by unsigned arithmetic in preceeding change. 2002-05-23 John Hughes * acconfig.h: Add HAVE_OPTHDR and HAVE_T_OPTHDR defines. * aclocal.m4: Add tests for struct opthdr in sys/socket.h and struct t_opthdr in sys/tiuser.h, define HAVE_OPTHDR and HAVE_T_OPTHDR if found. * configure.in: use tests for struct opthdr and struct t_opthdr. * defs.h: add new function print_sock_optmgmt. * io.c: add hack that lets ioctl decode functions set auxilliary string return. * stream.c: better decoding for timod ioctls. * net.c: add function print_sock_optmgmt, used by timod ioctl decoding functions in stream.c. 2002-05-23 John Hughes * acconfig.h: Make autoheader happy about Linux/SuperH 2002-05-23 John Hughes * strace.c: Get rid of warning if not using POLL_HACK 2002-05-22 John Hughes * net.c: Simplify {get,set}sockopt, decode SO_LINGER, cope with options that are not just ints, cope with systems that don't #define SOL_TCP and so on. 2002-05-21 John Hughes * strace.c: Fix warning if POLL_HACK is used. 2002-05-17 John Hughes * svr4/ioctlent.sh: Some defines on UW come with too many spaces. 2002-05-17 John Hughes * svr4/ioctlent.sh: Cope with #defines wrapped in #ifdefs. 2002-05-17 John Hughes * stream.c: tidy up output a little. 2002-05-17 John Hughes * process.c, svr4/dummy.h, svr4/syscall.h: decode arguments to procpriv syscall. 2002-05-01 Wichert Akkerman * configure.in, defs.h, process.c, sock.c, syscall.c, util.c: merge patch from Greg Banks for Linux/SuperH support 2002-04-01 Wichert Akkerman * strace.c: close tcp->outf in droptcb() 2002-04-01 Wichert Akkerman * net.c: decode packet options 2002-03-31 Wichert Akkerman * linux/{alpha,hppa,ia64,mips,powerpc,sparc}/syscallent.h: regenerated 2002-03-31 Wichert Akkerman * debian/*: added * linux/syscallent.h: fix typo and add the reserved stream syscalls * defs.h, file.c, io.c: fix signed/unsigned issues * syscall.c: check for negative u_errors * cvsbuild: renamed to autogen.sh 2001-12-17 Wichert Akkerman * net.c: add new TCP socket options 2001-10-26 John Hughes * svr4/ioctlent.sh: Cope with #define lines containing comments that terminate on subsequent lines. Used to comment out subsequent ioctls! 2001-10-25 Wichert Akkerman * linux/ioctlent.h: regenerated using current scripts so term ioctls are included 2001-10-19 John Hughes * strace.c(proc_open): On SVR4 only trace the syscalls, signals and faults we care about. 2001-10-18 John Hughes * acconfig.h: Add HAS_SIGINFO_T. * aclocal.m4: add check for siginfo_t in signal.h. * configure.in: use check for siginfo_t. * defs.h: if HAVE_SIGINFO_T the declare printsiginfo. On SVR4 allow access to siginfo when signal recieved. * process.c: Remove SVR4 only version of printsiginfo. * signal.c: merge SVR4 and LINUX versions of printsiginfo. * strace.c: on SVR4 print siginfo when signal recieved. 2001-10-18 John Hughes * system.c(sys_ssisys): handle return values for ssisys 2001-10-18 John Hughes * signal.c: handle sigwait * svr4/dummy.c: Move sigwait to done * svr4/syscall.h: handle sigwait 2001-10-16 John Hughes * system.c(sys_ssisys): decode some args for ssisys. 2001-10-16 John Hughes * mem.c: MS_SYNC is zero, so must be first in xlat list. * svr4/dummy.h: memcntl is much like mctl. 2001-10-16 John Hughes * util.c (umovestr): UnixWare (svr4?) returns 0 when trying to read unmapped page. Make it possible to strace ksh. 2001-10-03 David Mosberger * process.c (internal_clone): Avoid race condition by clearing breakpoint after attaching to child. 2001-10-02 David Mosberger * linux/ia64/syscallent.h: Define ia32 syscall numbers (originally by Don Dugger, with my refinements). * linux/ia64/ioctlent.h: Regenerate and manually merge conflicting ioctls (TCGETS & SNDCTL_TMR_TIMEBASE, etc.). * linux/ia64/Makefile.in (ioctldefs.h ioctls.h): Update for new ioctlent.h generation scheme. * linux/syscall.h (sys_clone2): Declare. [IA64] Define ia32 socket, ipc, and extra syscall numbers. * linux/ioctlent.sh (regexp): Also handle so we don't miss the tty ioctls (unfortunately, some of the sound timer ioctls are in conflict with them!). * util.c (setbpt) [IA64]: Add ia32 support (by Don Dugger). (clrbpt) [IA64]: Ditto. * syscall.c (internal_syscall): Handle SYS_clone2, SYS32_wait4, and SYS32_exit. (get_scno): Get ia32 syscall number from r1 (orig eax) instead of r8 (eax). Handle TCB_WAITEXECVE. (syscall_fixup): Handle ia64. (syscall_enter): Fix argument fetching for ia64. * strace.c [IA64 && LINUX]: Include . (trace) [PT_GETSIGINFO]: Print signal address and pc if possible. * process.c (tcp): New function. (change_syscall): Add support for ia64 linux. (sys_execve): Turn on TCB_WAITEXECVE for ia64 linux. * desc.c (getlk): Cast l_len to "long long" to avoid warnings when type is narrower. * resource.c (sprintrlim64): Ditto. * defs.h (TCB_WAITEXECVE) [IA64]: Define. [IA64]: Declare "ia32" variable. * bjm.c: Do not include . It's not safe to include kernel headers. Declare the necessary constants and structures directly instead. 2001-10-01 David Mosberger * signal.c (parse_sigset_t): New function. (sigishandled): Fix off-by-one bug by using parse_sigset_t() and avoiding relying on internal layout of sigset_t datastructure. 2001-04-26 David Mosberger * linux/ia64/syscallent.h: Add getunwind(). 2001-04-11 David Mosberger * syscall.c (syscall_enter): Use PT_RBS_END instead of deprecated PT_AR_BSP. Pick up arguments starting with out0, which is not always the same as r32 (e.g., consider inlined syscalls). 2001-09-28 John Hughes * process.c: FreeBSD-CURRENT no longer has PT_READ_U, and anyway we were showing it as PT_WRITE_U! Fix from Maxime Henrion. 2001-09-18 John Hughes * net.c: fix display of sockaddr structures, sometimes too many "}", sometimes too few. Fix suggested by Richard Kettlewell. 2001-08-19 Wichert Akkerman * signal.c: do not include asm/sigcontext.h on IA64 since it gets the struct from bits/sigcontext.h already which signal.h includes. 2001-08-03 Wichert Akkerman * linux/ioctlent.sh: change regexps so we catch sound ioctls as well in Linux * linux/Makefile.in: fix a few things so the ioctl list is generated properly * ioctl.c: remember to shift ioctl masks as well 2001-08-03 Wichert Akkerman * Linux/**/syscallent.h: synchronize section for fcntl and use sys_fcntl for sys_fcntl as well 2001-08-03 Wichert Akkerman * linux/hppa/syscallent.h: updated from Matthew Wilcox 2001-08-03 Wichert Akkerman * process.c: seems Linux/IA64 changed register names on us, switch to using new names. 2001-08-03 Wichert Akkerman * strace.c: set CLOEXEC flag for outputfile 2001-08-03 Wichert Akkerman * linux/sparc/syscall.h, linux/sparc/syscallent.h: add some LFS calls 2001-07-23 Wichert Akkerman * configure.in: Support cross-compiling between architectures 2001-07-13 Wichert Akkerman * configure.in: add S390 to architecture list 2001-07-10 John Hughes * TODO, defs.h, io.h, net.c, strace.c, syscall.c, util.c: Merge fixes from Richard Kettlewell which add I/O dumping of args to readv/writev. Also gets rid of redundant printiovec routine from net.c (duplicate of tprint_iov in util.c). 2001-07-02 Wichert Akkerman * config.{guess,sub}: updated 2001-05-15 John Hughes * signal.c: pass a pointer to sigmask to printsigmask from printcontext, it was just passing the sigmask (ucp->uc_sigmask). 2001-05-15 John Hughes * util.c: Don't run off the end of valid memory in umovestr when USE_PROCFS. Important for FREEBSD systems (which seem to have an unmapped page just after the args/env area). 2001-04-18 John Hughes * configure.in: test for sys/nscsys.h, the non-stop clusters includes. * process.c: handle rfork{1,all} and rexecve calls on non-stop clusters. * syscall.c: treat rfork{1,all} and fork{1,all} as fork like calls. Treat rexecve as an exec. * system.c: decode arguments to ssisys call on nsc systems. * svr4/dummy.h, svr4/syscall.h: now we handle rfork{1,all}, ssisys and rexecve calls. 2001-04-12 Wichert Akkerman * process.c: fix cast for powerpc code * linux/powerpc/syscallent.h: update syscall list * README: fix address for the strace mailinglist * signal.c: switch to using /proc//status on Linux so we can get the realtime signals as well 2001-04-10 Wichert Akkerman * Merge patches from Maciej W. Rozycki: + util.c: add code to print PC for MIPS + linux/mips/syscallent.h: updated + system.c: formating fixes for sys_sysmips + configure.in: test for yet more headers + stream.c: use configure-headertests instead of relying on OS hints 2001-04-07 Wichert Akkerman * NEWS: start 4.3.1 items * version.c: updated to say 4.3.1 (was still 4.2, oops!) 2001-04-07 Wichert Akkerman * configure.in: test for asm/sysmips.h and linux/utsname.h * linux/syscall.h: fix a typo for sys_sysmips * system.c: include asm/sysmips.h and linux/utsname.h if they exist, fix typo 2001-03-31 Wichert Akkerman * linux/mips/ioctlent.h: updated using new Linux ioctl setup 2001-03-31 Wichert Akkerman * linux/ia64/ioctlent.h: regenerated 2001-03-31 Wichert Akkerman * linux/{alpha,ia64,powerpc}/ioctlent.sh: removed, all archs use the general Linux ioctlent.sh 2001-03-31 Wichert Akkerman * linux/ioctlent.sh: add dir variable for location of kernel headers 2001-03-29 Wichert Akkerman * linux/ia64/ioctlent.h: updated using new Linux ioctl setup 2001-03-29 Wichert Akkerman * linux/powerpc/ioctlent.h: updated using new Linux ioctl setup 2001-03-29 Wichert Akkerman * linux/hppa/ioctlent.h: updated using new Linux ioctl setup 2001-03-29 Wichert Akkerman * linux/alpha/ioctlent.h: updated using new Linux ioctl setup 2001-03-28 Wichert Akkerman * configure.in: use sparc* so we can compile on sparc64 as well * process.c, syscall.c: work around double define of fpq, fq and fpu structs on Linux/sparc, and use regs instead of pt_regs * don't use asm/sigcontext.h on Linux/sparc 2001-03-28 Wichert Akkerman * linux/sparc/ioctlent.h: updated using new Linux ioctl setup 2001-03-28 Wichert Akkerman * strace.c: use __WALL as wait4 flag if it exists so we can properly trace threaded programs 2001-03-27 John Hughes * aclocal.m4: add check for endianness of long long. * acconfig.h: add #define for LITTLE_ENDIAN_LONG_LONG. * configure.in: check for endianness of long long. * defs.h: change LONG_LONG macro to work with either endianness of long long. 2001-03-27 John Hughes * net.c: Make compilable by SCO UDK compiler (doesn't like empty initialisation list for array). 2001-03-27 John Hughes * svr4/syscallent.h: ntp_adjtime entry was duplicated on Solaris systems - bad merge of Harald Boehme's patch by me. 2001-03-27 Wichert Akkerman * lots of files: add Linux/hppa support 2001-03-19 Wichert Akkerman * linux/mips/syscallent.h: we can't have -1 nargs, change to 0 * linux/syscallent.h: not that syscalls 220 and 221 are used now * config.guess: updated 2001-03-17 Wichert Akkerman * linux/ioclsort.c: new file * linux/ioctlent.sh: complete rewrite to use a more sane approach to get the ioctl list that doesn't involve attempting to #include all kernel headers * linux/.cvsignore: added ioctdefs.h and ioctls.h which are generated by the new ioctlent.sh * ioctl.c: only look at the number and type bits for linux, since ioctlent.sh no longer supplies the others 2001-03-08 John Hughes * freebsd/syscalls.pl: On FreeBSD we must cope with COMPATibility syscalls, pretend they have names ending with "?" so that -e trace=stat (for example) will work. * freebsd/i386/syscallent.h: add ? to compatability syscalls. * freebsd/i386/syscall.h: consistency. 2001-03-08 John Hughes * acconfig.h: add new ST_xxx defines. * aclocal.m4: macros to check for more fields in struct stat. * configure.in: use new macros to check for fields in struct stat. * file.c: use new defines to replace #ifdef FREEBSD by #if HAVE_ST_xxx. 2001-03-08 John Hughes * defs.h: rename wimpy get64 as powerful new LONG_LONG * file.c: use LONG_LONG * io.c: use LONG_LONG * mem.c use LONG_LONG 2001-03-08 John Hughes * acconfig.h: new #defines HAVE_LONG_LONG_OFF_T and HAVE_LONG_LONG_RLIM_T. * aclocal.m4: routines to check for long long off_t and rlim_t. * configure.in: check for long long off_t and rlim_t. * desc.c: if HAVE_LONG_LONG_OFF_T treat flock as flock64 * file.c: if HAVE_LONG_LONG_OFF_T treat stat,lstat,fstat and lseek as 64 bit versions. * io.c: if HAVE_LONG_LONG_OFF_T use 64 bit versions of pread and pwrite. * mem.c: if HAVE_LONG_LONG_OFF_T use 64 bit version of mmap * resource.c: if HAVE_LONG_LONG_OFF_T use 64 bit versions of getrlimit and setrlimit. * freebsd/syscalls.print: don't explicitly use 64 bit versions of calls, now done automaticaly for us. * freebsd/i386/syscall.h: ditto. * freebsd/i386/syscallent.h ditto. 2001-03-07 John Hughes * desc.c: On FreeBSD flock structure uses 64 bit offsets. * file.c: On FreeBSD use stat64 and pals instead of stat. * freebsd/syscalls.print: use stat64, lstat64 and fstat64. * freebsd/i386/syscall.h: ditto. * freebsd/i386/syscallent.h: ditto. 2001-03-07 John Hughes * file.c: merge missing part of Harald Böhme's solaris patches, was only declaring sys_{stat64,lstat64,fstat64} on linux! 2001-03-07 John Hughes * svr4/dummy.h: fix multiple define warning on non LFS64 systems. * svr4/syscallent.h: pread/pwrite are TF calls. 2001-03-07 John Hughes * defs.h: add ALIGN64 macro to cope with FreeBSD's strange insistence on alignment for off_t (64 bit) arguments. Also simplify get64 so we don't need to know endianness of long long. * file.c: FreeBSD now uses 64 bit versions of lseek, truncate, ftruncate, allows reduction in numvber of horrid #if's * io.c: FreeBSD now uses 64 bit versions of pread, pwrite. * mem.c: FreeBSD now uses 64 bit version of mmap. * freebsd/syscalls.print: use 64 bit versions of various syscalls. * freebsd/i386/syscall.h: use 64 bit versions of various syscalls. * freebsd/i386/syscallent.h: use 64 bit versions of various syscalls. 2001-03-06 John Hughes * file.c: Implement truncate64 and ftruncate64 * svr4/dummy.h: add dummies for truncate64 and ftruncate64 for non LFS64 systems. * svr4/syscall.h: add declarations for truncate64 and ftruncate64. 2001-03-06 John Hughes * freebsd/syscalls.pl: fix for FreeBSD 4.1 (new optional field in syscall master file). 2001-03-06 John Hughes * syscall.c: fix for FreeBSD 4.1 (SYS_semconfig has disappeared). Also zap incorrect syscall subarg range check. 2001-03-06 John Hughes * configure.in, defs.h, desc.c, file.c, io.c, mem.c, net.c, resource.c, signal.c, syscall.c, svr4/dummy.h, svr4/syscall.h, svr4/syscallent.h: merge Harald Böhme's solaris patches (_LFS64_LARGEFILE and kernel aio mostly). 2001-03-06 John Hughes * dummy.h: add unimplemented UW sycalls * syscall.h: we can do settimeofday for UW, whopee! * syscallent.h: fix unimplemented UW syscalls 2001-03-06 John Hughes * aclocal.m4: look for pr_syscall in pr_lwp if we HAVE_MP_PROCFS * defs.h: add PR_SYSCALL to allow use of pr_lwp.pr_syscall if it exists. * syscall.c: use PR_SYSCALL instead of pr_syscall, fix up UnixWare code so it doesn't try to use pr_sysarg. 2001-03-06 John Hughes * aclocal.m4: on systems other than linux look for stat64 in sys/stat.h * file.c: handle xstat version _STAT64_VER, aka stat64. 2001-03-06 John Hughes * net.c: make sure SOL_ options are defined before using. * signal.c: declare sigset variable, only used on linux, inside #ifdef. 2001-02-21 Wichert Akkerman * net.c: fix format for printing Unix domain sockets 2001-02-19 Wichert Akkerman * linux/mips/syscallent.h: use new sys_sysmips * system.c: add sys_sysmips decoding 2001-02-16 Wichert Akkerman * CREDITS: add Arkadiusz Miskiewicz who submitted the IP6 scope ID updates * acconfig.h: add HAVE_SIN6_SCOPE_ID and HAVE_SIN6_SCOPE_ID_LINUX * aclocal.m4: add AC_SIN6_SCOPE_ID to check if sin6_scope_id is available * configure.in: check for if_indextoname function and sin6_scope_id * net.c: teach printsock about IP6 scope ids 2001-02-16 Wichert Akkerman * configure.in: test for netinet/tcp.h and netinet/udp.h existance * net.c: include netinet/tcp.h and netinet/udp.h if they exist * Makefile.in: use @mandir@ and @bindir@ 2000-11-26 Wichert Akkerman * net.c: fix formating error in sys_setsockopt * net.c: add list of socketlayers and use that for [gs]etsockopt 2000-10-12 Wichert Akkerman * time.c: use sys/timex.h so things compile with 2.2 kernels * stream.c: test if MSG_* constants are #defined 2000-09-03 Wichert Akkerman * process.c: perform bpt trick for clone as well so we can get the pid of the child before it starts doing something * file.c: rename dirent64 struct to kernel_dirent64 so things compile again with newer libcs * test/clone.c: improve our testcase a bit * Merge another patch from Gäel Roualland with FreeBSD updates 2000-09-01 Wichert Akkerman * lots of files: merge patch from Gaël Roualland to add support for FreeBSD. 2000-08-09 Wichert Akkerman * file.c: update to reflect that st_ino suddenly became a long long in the in Linux 2.4.0-test6 2000-08-09 Wichert Akkerman * test/clone.c: minor fixup * Another bunch of patches from John Hughes merged: * signal.c: + SVR4 printcontext(): sigset_t != sigset_t* + getcontext returns a value, so print on exit of syscall + add UC_FP to ucontext_flags for OS writers that can't spell + sys_signal(): special case SIG_{ERR,DFL,IGN} + decode_subcall(): only do subcall range checking when needed * bunch of UnixWare updates * aclocal.m4, acconfig.h, configure.in: add test for long long type 2000-07-04 Wichert Akkerman * net.c: add SOL_PACKET and SOL_RAW socket options, update SOL_IP and SOL_TCP 2000-06-23 Wichert Akkerman * strace.c: close outf before we exec a child process 2000-06-09 Ulrich Drepper * configure.in: Don't link against libnsl on Linux, it's unnecessary. * defs.h (struct tcb): Make auxstr member const. * file.c (fsmagic): And many more magic numbers. * util.c: Don't include for glibc 2.1 and up. 2000-04-26 Wichert Akkerman * defs.h: balance #if/#endif again * system.c: fix return statements in sys_capget() * Merge updates from Topi Miettinen : + file.c: add F_[SG]ETSIG to fcntl flags + strace.c: don't setre[gu]id if not needed + system.c: handle sys_reboot for Linux + term.c: add baudrate constants up to B4000000 + linux/**/syscallent.h: note that munlockall has no arguments 2000-04-25 David Mosberger * CREDITS: fix email address * process.c: handle PR_[GS]ET_UNALIGN and PR_[GS]ET_KEEPCAPS * signal.c: honour offset of sigconfig in sigframe structure for Linux/ia64 * linux/ia64/syscallent.h: Add perfmonctl, pivotroot, mincore, and madvise syscalls. * syscall.c (syscall_enter): With Kevin's latest ptrace patches, AR_BSP points to the _end_ of the active register frame, so we need to adjust bsp by moving it back by the size of the active frame before using it. 2000-04-24 Wichert Akkerman * process.c: add sparc support to change_syscall 2000-04-22 Wichert Akkerman * linux/mips/syscallent.h: fix some typos 2000-04-14 Wichert Akkerman * linux/mips/syscallent.h: added names for SVR4, SYSV, BSD4.3 and POSIX syscalls 2000-04-13 Wichert Akkerman * defs.h: Linux/MIPS uses syscalls up to >4k, so set MAX_QUALS to 4999 2000-04-09 Wichert Akkerman * README-linux: updated to note that strace might not compile with development kernels * bjm.c: sys_query_module: check if malloc succeeds * system.c: sys_cap[gs]et(): check if malloc succeeds, only malloc once * linux/syscallent.h: updated for 2.3.99pre3 * linux/alpha/syscallent.h: updated for 2.3.99pre3, add all osf syscalls even though Linux doesn't implement them * syscall.c: add global variables for MIPS registers as well * syscall.c: move global variables to before get_scno since that uses them * util.c: oops, misspelled defined * process.c: fix ptrace calls in change_syscall * mem.c: decode sys_madvise * Merge patch from Topi Miettinen + add support for quotactl, fdatasync, mlock, mlockall, munlockall & acct + small fix for RLIMIT_* and RUSAGE_BOTH + enhace support for capget and capset 2000-02-19 Wichert Akkerman * test/vfork.c: new file to test vfork traces * test/.cvsignore: new file * defs.h: Up maximum number of traced processed to 64 * strace.c: Disable some debugging code from davidm * implement setarg for more architectures * implement change_syscall 1999-12-27 Morten Welinder * syscall.c (lookup_signal, lookup_desc): isdigit requires an _unsigned_ char parameter. 2000-02-14 Wichert Akkerman * S390 updates 2000-02-03 Wichert Akkerman * Merge Linux/ia64 patches 2000-01-02 Pavel Machek * probe if sys/poll.h exists in configure + minor cleanups * syscall.c: split trace_syscall into few pieces to make code readable 2000-01-21 Wichert Akkerman * Release version 4.2 to get the current updates out and so we can concentrate in finishing the clone support. 2000-01-11 Wichert Akkerman * Add 1900 to tm_year in sprinttime 1999-12-24 Wichert Akkerman * file.c: protect printstat64 with STAT64 instead of linux so we can compile on Linux architectures that don't have it * util.c: fix LOOP for ARM Fri Dec 24 18:05:00 EST 1999 1999-12-23 Ulrich Drepper * file.c: Use ugly libc_stat trick also for stat64. Implement sys_stat64, sys_fstat64, sys_lstat64, and printstat64. * process.c (internal_clone): Fix a few typos and add definitions to make it at least compile. * linux/syscall.h: Declare sys_stat64, sys_lstat64, and sys_fstat64. * linux/syscallent.h: Define table entries for sys_stat64, sys_lstat64, and sys_fstat64. * aclocal.m4: Define AC_STAT64. * acconfig.h: Define HAVE_STAT64. * configure.in: Add AC_STAT64. Thu Dec 23 15:01:37 CET 1999 Wichert Akkerman * Merge patch from ftp://oss.software.ibm.com/linux390/ to add support for Linux on the IBM S/390 architecture * process.c: add internal_clone(), currently only shows the options * syscall.c: use internal_clone to handle SYS_clone Mon Dec 20 00:27:50 CET 1999 Wichert Akkerman * Rewrite mmap-handling to support mmap2 on Linux Tue Dec 14 11:35:16 CET 1999 Wichert Akkerman * Note that Linux can handle sys_semop() as well Tue Nov 30 11:05:26 CET 1999 Wichert Akkerman * Include linux/in6.h for glibc2.0 and older Mon Nov 29 16:33:04 CET 1999 Wichert Akkerman * Merge patches from John Hughes to make configure support UnixWare Sat Nov 27 21:38:17 CET 1999 Wichert Akkerman * Enhance sys_query_module Fri Nov 26 10:51:55 CET 1999 Wichert Akkerman * Patches from John Hughes: + cosmectic fix in sys_getpmsg + allow net.c to compile on systems without AF_INET6 + Only use long_to_sigset on Linux systems + UnixWare treats sigmask_t and sigmask_t* as the same thing + Add pollhack + Parse mount arguments for UnixWare + ACL fixes for UnixWare Fri Nov 26 01:28:09 CET 1999 Wichert Akkerman * Release 4.1 to get all the changes made out there Thu Nov 18 18:04:04 CET 1999 Wichert Akkerman * Merge stracefork from Alexey Kuznetsov + Socket calls parsed better + bunch of alpha OSF syscalls added + Fix alpha 32/64 bit issues Mon Nov 1 20:52:08 CET 1999 Wichert Akkerman * Move Linux kernelmodule-functions from system.c to bjm.c and remove duplicate for sys_create_module * Linux MIPS updates: + Play with #ifdef's in net.c to get IPv6 right + Use printargs for vm86-syscall Sun Oct 31 22:03:00 CET 1999 Wichert Akkerman * Merge Linux mips patch from Florian Lohoff Mon Oct 11 00:36:25 CEST 1999 Wichert Akkerman * Merge patch from Keith Owens to sys_query_module and sys_delete_module correctly Wed Oct 6 02:00:33 CEST 1999 Wichert Akkerman * Update cvsbuild to give a better error if autoconf isn't installed * Add test for linux/ptrace.h to configure * Since we define GNU_SOURCE in the Makefile we don't need to define USE_GNU in file.c anymore Fri Sep 10 04:35:16 CEST 1999 Wichert Akkerman * #define USE_GNU before including file.c so we get some extra O_* flags Tue Aug 31 16:27:21 CEST 1999 Wichert Akkerman * Add missing } in IPv6 output Tue Aug 31 01:23:08 CEST 1999 Wichert Akkerman * Update copyright for strace-graph to BSD to be consistent with the rest of strace Mon Aug 30 00:53:57 CEST 1999 Wichert Akkerman * Merge patch from Daniel Jacobowitz: KERN_JAVA_* and KERN_SECURELVL aren't defined for all kernelversions * Add strace-graph, written by Richard Braakman Thu Aug 19 13:10:15 CEST 1999 Jakub Jelinek * linux/sparc/syscall.h: Declare create_module/init_module. * configure.in: Allow compilation in a different directory than the source one. * signal.c: Use asm/reg.h and struct regs instead of pt_regs so that we don't depend on asm/ptrace.h which clashes with glibc sys/ptrace.h. * util.c: Likewise. * syscall.c: Likewise. Wed Aug 4 18:01:50 CEST 1999 Wichert Akkerman * Syscall 94 on Linux alpha is sys_poll Sun Jul 25 14:38:33 CEST 1999 Wichert Akkerman * Merge in UnixWare patches from John Hughes Thu Jul 15 23:00:32 CEST 1999 Wichert Akkerman * Merge patch from Maciej W. Rozycki : + Correctly implement fix sys_createmodule (Linux) + Add limited handlig of sys_initmodule (Linux) Tue Jul 13 17:07:50 CEST 1999 Wichert Akkerman * Add configure-test for sys/reg.h and use that * Use sys/reg.h instead of asm/ptrace.h Sat Jul 10 01:46:10 CEST 1999 Wichert Akkerman * Remove hack in signal.c for arm architecture * Add hack so we compile correctly on powerpc Fri Jul 9 02:28:16 CEST 1999 Wichert Akkerman * Add a corrected patch from Daniel Jacobowitz Thu Jul 8 16:00:04 CEST 1999 Wichert Akkerman * Merge patch from Daniel Jacobowitz to allow us to use the kernel types for the stat structure Thu Jun 24 15:54:18 CEST 1999 Wichert Akkerman * Fix test for sys/reg include Tue Jun 22 17:26:33 CEST 1999 Wichert Akkerman * Fixed some Linux/powerpc sillyness, thanks to Daniel Jacobowitz * Fixed some SunOS compile problems earlier that I forgot to include here Mon Jun 14 12:44:25 CEST 1999 * Avoid leakint fd into child when forking, patch from John Hughes Fri Jun 11 14:54:47 CEST 1999 * Applied IRIX64 patch from Thomas E. Dickey * Applied Solaris and manpage updates from Guy Harris Wed Jun 9 14:48:49 CEST 1999 Wichert Akkerman * Brought syscall list for alpha up to date Wed Jun 2 18:30:12 CEST 1999 Jakub Jelinek * system.c: sys_umount2 syscall support. * linux/sparc/errnoent.h: Update sparc-linux errnos. * linux/sparc/syscall.h: Update used sparc-linux syscalls. * linux/sparc/syscallent.h: Match 2.2.9 system calls. * file.c: sparc-linux asm/stat.h uses dev_t etc. types, so it needs strace's own copy of the stat structure. * util.c: Make it compile on sparc-linux. * strace.c: Fix strace -f and -ff operation on sparc-linux. * signal.c: rt_sigaction has different arguments on sparc*-linux and alpha-linux. * syscall.c: Recognize sparc64-linux binaries. Fri May 28 21:09:00 PST Ulrich Drepper * configure.in: Fix typo (CFLAG -> CFLAGS). * syscall.c: Don't include linux/ptrace.h explicitly for glibc. Thu May 27 13:59:27 CEST 1999 Wichert Akkerman * Add some sysctl support, patch from Ulrich Drepper Wed May 26 01:04:34 CEST 1999 Wichert Akkerman * Use kernel dirent structure for Linux Sun May 9 02:18:30 CEST 1999 Wichert Akkerman * Merge in patches from Andreas Schwab + some layout and other minor fixes + add some m68k-specific things to linux/syscallent.h. Note that m68k is similar enough to i386 to not need it's own subdirectory + add support for sendfile and mremap syscalls for Linux * Merge in patches from Sascha Schumann + ioctls.h vs sys/ioctl.h on Alpha platform + pointer was casted to an int in stream.c + strsignal() needs -D_GNU_SOURCE in CFLAGS + several other casts changed + correct ARM/POWERPC architecture defines in acconfig.h * Merge in patches from Morten Welinder + add some autoconf-tests for includefiles + handle solaris version of sigcontext struct (actually I hacked this up again, but the idea is his :) Sun Apr 18 22:32:42 CEST 1999 Wichert Akkerman * Update syscalls for linux alpha, patch from Bart Warmerdam * Update sparc code so it actually compiles Fri Apr 16 02:18:05 CEST 1999 Wichert Akkerman * Add support for old_*stat functions for Linux. Please note you need to use reasonably recent kernel headers to compile strace now. * Change references to LINUX into linux in file.c * Fix include for LDT in mem.c Thu Apr 15 22:28:15 CEST 1999 Wichert Akkerman * Change in strace maintainership, jrs passed the torch to me. * Use autoconf 2.13 * Incorporate all changes already made in the Debian strace package: + compiles with more Linux kernels + added support for more Linux architectures + add support for a lot of extra syscalls + fix some problems with hanging children + check stray syscall after execv + decode capget and capset arguments + add more constants to net.c + detect ROSE networking + add more protocol families to domains + add IPIP protocol + added MSG_PROXY and MSG_CTRUNC to msg_flags + added SO_BSDCOMPAT and SO_REUSEPORT to sockoptions + added IP, IPX and TCP-options + added IP, IPX and TCP support to get-/setsockopt() + added IPX support + updated handling of signals Sun Oct 27 22:28:00 1996 J. Richard Sladkey * util.c (umovestr) [LINUX]: Handle Linux like SunOS4 instead of SVR4. That is, read a few bytes at a time to avoid overrunning the end of the stack. Fri May 31 01:48:49 1996 J. Richard Sladkey * version.c: Version 3.1 is released. Thu May 23 01:04:43 1996 J. Richard Sladkey * aclocal.m4 (AC_DECL_SYS_ERRLIST): Try looking in stdio.h as well since that's where glibc declares it. Go figure. * signal.c (sys_sigreturn) [ALPHA]: Use sigcontext instead of sigcontext_struct since glibc v5+ apparently plays games with the native OS namespace. From David Mosberger-Tang . Mon May 20 23:17:14 1996 J. Richard Sladkey * version.c: Version 3.0.14 is released. * aclocal.m4 (AC_STRUCT_MSG_CONTROL): New macro. * configure.in: Add call to AC_STRUCT_MSG_CONTROL. * net.c (printmsghdr): Handle BSD 4.3 and 4.4 msghdr members differently. Reported by Henrik Storner . * configure.in: (AC_CHECK_{HEADERS,FUNCS}): Add checks for sys/filio.h and sys/stream.h and remove check for poll. * desc.c (decode_select, sys_select, sys_oldselect) [LINUX]: Handle old and new styles of argument passing for select on Linux. * ioctl.c, stream.c: Conditionalize stream code on presence of sys/stream.h instead of poll because glibc implements poll but not the rest of the stream interface. * signal.c [LINUX]: Standardize on the name sigcontext_struct. (sys_sigprocmask) [ALPHA]: Handle OSF flavor which is more like sigsetmask. * term.c (term_ioctl): Use _VMIN, if present, for TC{G,S}ETA*. * util.c (umoven, umovestr): Move data in long-sized chunks at a time, instead of hard coding it to be 4. From David Mosberger-Tang . Mon May 20 01:19:36 1996 J. Richard Sladkey * version.c: Version 3.0.13 is released. * configure.in (AC_CHECK_HEADERS): Add check for asm/sigcontext.h. * signal.c [HAVE_ASM_SIGCONTEXT_H]: Conditionally include asm/sigcontext.h to define sigcontext_struct and don't define it locally if the header is present. * syscall.c (nerrnos{0,2}): Correct size computation. * Makefile.in: Remove dependencies and rules relating to files normally found in the os directory. Because of the new scheme we don't know precisely where they come from. Sigh. * signalent.sh: Make it work for sunos4, linux, and svr4. * {sunos4,linux{,/alpha},svr4}/Makefile.in: Make rules correspond to traditional make syntax. Add signalent.h to files which can unconditionally be rebuilt. Prevent signalent.h from being unconditionally being rebuilt since it's customized. * {sunos4,linux{,/alpha},svr4}/{ioctlent,errnoent,signalent}.h: Use versions built by {ioctlent,errnoent,signaltent}.sh. * sunos4/ioctlent.sh: Work around sprintf troubles with SunOS 4.1.4 and gcc 2.7.2. Sun May 19 17:14:09 1996 J. Richard Sladkey * configure.in, Makefile.in: Add OSARCH concept to finish build support for the alpha. * Makefile.in, linux/Makefile.in: Rewrite clean, distclean, and maintainer-clean rules. * defs.h, ioctlsort.c: Make ioctl code member unsigned. * ioctl.c, ioctlsort.c (compare): Perform explicit checking for less, greater, and equal since subtraction on two's complement numbers isn't an order relation (it isn't transitive)! * linux/Makefile.in: Add rules for the signalent.h file. * linux/alpha/Makefile.in: New file. Sun May 19 01:12:28 1996 J. Richard Sladkey * version.c: Version 3.0.12 is released. * linux{,alpha}/ioctlent.sh: Tweak for recent kernels. From Michael E Chastain . * defs.h (SUPPORTED_PERSONALITES, DEFAULT_PERSONALITY): New. * syscall.c (set_personality): New. * strace.c (main): Call set_personality. * defs.h, syscall.c, ioctl.c, signal.c: Make sysent, errnoent, ioctlent, and signalent indirect pointers and redirect them based on personality. * {sunos4,svr4,linux{,/alpha}}/signalent.h: New files. Suggested by Tom Dyas . * util.c (upeek): Handle case where ptrace returns a long and sizeof(long) != sizeof(int). From Richard Henderson Fri May 17 21:03:36 1996 J. Richard Sladkey * version.c: Version 3.0.11 is released. * many files: Fix more printf warnings for other platforms. * ipc.c (sys_msgrcv) [LINUX]: Conditionalize definition of ipc_wrapper. * linux/dummy.h: Handle missing library support for {send,recv}msg. Reported by Thomas Bogendoerfer . * linux/syscall.h (sys_utimes): Fix a typo in the declaration. From Thomas Bogendoerfer . Fri May 17 00:50:06 1996 J. Richard Sladkey * version.c: Version 3.0.10 is released. * Makfile.in: Add os/arch to includes so that a given arch (like alpha) can override the native arch (like i386). * configure.in: Check for sendmsg. * net.c: Make sendmsg and recvmsg dependent on an autoconf test. Reported by Michael E Chastain . * acconfig.h, configure.in: Detect the alpha. * ioctl.c: Handle the alpha. * defs.h: Make some members long for the alpha. Define some register nicknames. Add support for WAITEXECVE. * file.c [ALPHA]: Support the alpha for statfs. Add osf_statfs and osf_fstatfs for the alpha. Make damn sure major and minor results are suitable for passing to printf. * signal.c, syscall.c: Support the alpha. * process.c: Add alpha user offsets. * most files: Use %l? for printf arguments since most are now longs for the alpha. * linux/alpha/{errnoent.h,ioctlent.{h,sh},syscallent.h}: New for the alpha. From Thomas Bogendoerfer . Wed May 15 00:29:37 1996 J. Richard Sladkey * version.c: Version 3.0.9 is released. * config.in, config.sub, install-sh: Upgrade to autoconf 2.10. * linux/dummy.h, linux/syscallent.h, linux/syscall.h: Add recent Linux kernel version system calls. Wed Mar 13 01:03:38 1996 J. Richard Sladkey * ipc.c [SUNOS4]: Add SunOS support for decoding IPC calls. * syscall.c [SUNOS4]: Compile decode_subcall on SunOS and decode IPC calls using it. * sunos4/dummy.h: Alias sys_semop to printargs. * sunos4/syscall.h: Add new pseudo syscalls for IPC. * sunos4/syscallent.h: Include new subcalls for IPC. From Matthias Pfaller . Tue Feb 13 22:08:25 1996 J. Richard Sladkey * version.c: Version 3.0.8 is released. * time.c [LINUX]: Explicitly include linux/version.h. * strace.c (main): Don't let them even *try* to get strace to attach to itself since some systems don't handle this case very gracefully. Reported by David S. Miller . * Makefile.in (distclean): Fix it for subdirectories. * sunos4/syscallent.h, svr4/syscallent.h: Fill in the new sys_flags member for each defined system call. Fri Dec 8 01:17:28 1995 Rick Sladkey * defs.h (TRACE_*): New flags to describe what class of system call each system call is. (sysent): Add sys_flags member. * syscall.c (sysent): Define (and later undef) abbreviations for the system call class flags. (lookup_class): New function to translate strings to system call class flags. (qualify): Handle new system call class mechanism. * linux/syscallent.h: Fill in the new sys_flags member for each defined system call. * defs.h (print_sock): Remove redundant and non-K&R C compatible prototype. From Juergen Weigert . Thu Dec 7 01:17:40 1995 Rick Sladkey * linux/ioctlent.sh: Tweak to improve ioctl accuracy. From Michael E Chastain . * system.c (includes) [LINUX]: Add linux/nfs.h for recent kernels. From Michael E Chastain . Wed Dec 6 21:52:28 1995 Rick Sladkey * file.c (sprintfstype): Enclose string result in double quotes. * time.c (sys_adjtimex) [LINUX]: Conditionalize constantly evolving timex structure. From Aaron Ucko . * defs.h, syscall.c, strace.c: Rename syscall to trace_syscall and change prototype and all callers because of broken Linux shared libraries. From Aaron Ucko . * Makefile.in (clean): Check for a file with test -f not test -d. From Aaron Ucko . Tue Sep 26 02:32:31 1995 Rick Sladkey * version.c: Version 3.0.7 is released. * util.c (string_quote): Fix thinko which caused core dumps for strings with quotes in them. Reported by Marty Leisner . * linux/Makefile.in (errnoent.h rule): Grab all errno.h files from /usr/include, not just the linux one. From Michael E Chastain . * linux/errnoent.sh: Total rewrite to handle more ioctls with fewer false positives on more kernel flavors. From Michael E Chastain . Mon Sep 4 01:29:22 1995 Rick Sladkey * version.c: Version 3.0.6 is released. * linux/dummy.h, linux/syscall.h, linux/syscallent.h: Add sys_msync. * mem.c (mctl_funcs, mctl_lockas, sys_mctl): Conditionalize on MC_SYNC instead of HAVE_MCTL. (mctl_sync): Conditionalize on MS_ASYNC instead of HAVE_MCTL. (sys_msync): New function. Sat Sep 2 12:06:04 1995 Rick Sladkey * linux/dummy.h, linux/syscall.h, linux/syscallent.h: Add sys_flock and sys_getdents. * desc.c (flockcmds, sys_flock): Conditionalize on LOCK_SH not SUNOS4. * file.c (sys_getdents): Define unconditionally and handle LINUX case. * strace.c (main): Disallow username option unless both real and effective uids are root. Wed Aug 30 01:29:58 1995 Rick Sladkey * strace.c (main): Ensure that run_uid and run_gid are always set to something meaningful. (main, newoutf) [!SVR4]: Swap real and effective uids while opening any output files. (main) [!SVR4]: Treat effective uid of root as a request to handle suid binaries correctly using the real uid of the invoking user. Sat Aug 19 00:06:08 1995 Rick Sladkey * Makefile.in: Add `|| true' to clean rule because although GNU make 3.74 uses `sh -c' to invoke commands every other make in the world uses `sh -ec'. * syscall.c (syscall) [SVR4, MIPS]: The fifth and subsequent arguments appear to be stored on the stack, not in the registers following A3 (empirical result). * defs.h: Add prototype for printsock. * svr4/dummy.h: Remove generic handling of sys_mount. * system.c [SVR4, MIPS]: Include several system headers to cleanly get access to SGI mount information. (mount_flags, nfs_flags) [SVR4, MIPS]: New objects. (sys_mount) [SVR4, MIPS]: New function. (sys_mount) [SVR4, !MIPS]: New function. Tue Jul 4 00:30:34 1995 Rick Sladkey * version.c: Version 3.0.5 is released. * desc.c, resource.c, strace.c, syscall.c, time.c: Cast tv_sec and tv_usec members to long when using printf. * ipc.c: Omit define of __KERNEL__. ({MSG,SEM,SHM}_{STAT,INFO}): Explicitly define those things we want which __KERNEL__ used to provide. (sys_msgrcv): Change reference to ipc_kludge structure to look-alike ipc_wrapper to avoid dependence on __KERNEL__. mem.c (mmap_flags) [MAP_{GROWSDOWN,DENYWRITE,EXECUTABLE}]: Add Linux specific options. syscall.c: Use SYS_ERRLIST_DECLARED instead of guessing. [E{RESTART{SYS,NO{INTR,HAND}},NOIOCTLCMD}]: Explicitly define instead of depending of __KERNEL__. term.c: Cast c_{i,o,c,l}flag to long when using printf. Tue Jun 6 00:27:48 1995 Rick Sladkey * aclocal.m4 (AC_DECL_SYS_ERRLIST, AC_DECL__SYS_SIGLIST): New. * configure.in: Call AC_DECL_SYS_ERRLIST, AC_DECL_SYS_SIGLIST, and AC_DECL__SYS_SIGLIST. * acconfig.h (SYS_ERRLIST_DECLARED): New. * strace.c (strerror): Use SYS_ERRLIST_DECLARED. (strsignal): Use SYS_SIGLIST_DECLARED. net.c (sys_socket): Omit inadvertent surplus comma when protocol family isn't PF_INET. util.c (dumpstr): Fix incorrect printing of one too many characters when the length is not an even multiple of 16 bytes. Reported by Juergen Weigert . Thu May 4 23:37:47 1995 Rick Sladkey * ioctl.c (compare): Change prototype to match POSIX qsort. * signal.c (sigishandled) [SVR4]: Omit everything after return. * strace.c (trace) [SVR4]: Break out of for loop instead of returning when finished so final return statement is executed. * syscall.c (internal_syscall): Add more SYS_wait* variations. (syscall) [LINUX]: Correct typo which commented out the M68K argument to ifdef. * util.c (printstr): Cast unsigned char pointer argument to char pointer in umovestr call. (dumpstr): Likewise for umoven. Wed May 3 01:10:56 1995 Rick Sladkey * version.c: Version 3.0.4 is released. * signal.c (sys_sigblock): Move after the definition of sys_sigsetmask that it calls to avoid an implicit declaration. * stream.c (transport_user_options, transport_server_options): Only needed if TI_BIND is defined. * configure.in: Add -Wno-implicit to WARNFLAGS on SunOS 4.x. * process.c (internal_fork) [SVR4]: Fix a typo that omitted the tcp arguement from the call to exiting. Add getrval2 check so no fork processing is done in the child. (printwaitn): Initialize exited so that its value is defined for all flows of execution. Tue May 2 22:39:42 1995 Rick Sladkey * linux/dummy.h: Add aliases for sysfs, personality, afs_syscall, setfsuid, setfsgid, and _llseek syscalls. * linux/syscall.h: Add prototypes for them. * linux/syscallent.h: Add them to the syscall entries table. * system.c (headers) [LINUX]: Include linux/unistd.h to get __NR_* defines and conditionally include linux/personality.h if __NR_personality is defined. (personality_options) [LINUX]: New table. (sys_personality) [LINUX]: New function. Tue May 2 00:20:39 1995 Rick Sladkey * strace.c (trace) [!SVR4]: Change forever loop to one predicated on the number of traced processes so that we can have untraced children (e.g. via popen). * strace (main) [!SVR4]: Call fake_execve to get the actual exec and its arguments into the trace. (environ): Declare it. * process.c (fake_execve): New function. (headers): Include sys/syscall.h to get SYS_* defines. * process.c (sys_execv, sys_execve): Surround argument annotations with C comment delimiters. (printargv, printargc): The arg vector is an array of char pointers not ints. * strace.c (printleader): Also check for multiple -p arguments when deciding whether to print the pid field. * strace.c (strerror) [!HAVE_STRERROR]: New function. * defs.h (strerror, strsignal): Add these prototypes if we provide the functions. * configure.in (AC_CHECK_FUNCS): Add strerror. * strace.c (main, proc_poller): Add SIGPIPE to the list of caught and blocked signals. * strace.c (main): Add username option. Verify they are root before letting them use it. Look up the ids in the password file. Set them just before executing the program. From Reuben Sumner . Sat Apr 29 00:09:56 1995 Rick Sladkey * version.c: Version 3.0.3 is released. * system.c (mount_flags) [LINUX]: Omit duplicated MS_NOSUID entry. From Reuben Sumner . * strace.c (outfname): Initialize to NULL. (main): Defer output file processing until after arguments. Allow either a pipe or a bang for command arguments. Check if outfname is NULL instead of checking outf for stderr. Reinitialize each startup TCB's outf to fix -p/-o ordering bug. (droptcb): Reset close TCB's outf to NULL instead of stderr. (tprintf): Avoid calling vfprintf if outf is NULL. * strace.c (main): Use popen if -o argument begins with a pipe. From Marty Leisner . * process.c (printstatus): Fix a typo where WIFSIGNALED was meant but WIFSTOPPED was used. * Makefile.in: Add an EXTRA_DEFS variable and use it in the .c.o rule to prevent the comment from being untrue. Fri Apr 28 22:01:56 1995 Rick Sladkey * strace.c (sys_exit): Move follow fork code to internal_exit. (sys_fork): Move follow fork code to internal_fork. (sys_execv, sys_execve): Move follow fork code to internal_exec. (sys_waitpid, sys_wait4): Move follow fork code to internal_wait. (vforking): Remove this static variable and check scno in internal_fork instead. (internal_exit, internal_fork, internal_exec, internal_wait): New functions. * defs.h: Add prototypes for the new internal_* functions. * syscall.c (syscall): Move syscall entering trace qualifier check and reprint checking after context decoding and precede them with a call to internal_syscall. Precede syscall exiting trace qualifier check with a call to internal_syscall. (internal_syscall): New function. * defs.h (struct tcb): Make scno signed. * strace.c (syscall) Make u_error signed. [LINUX, I386]: Avoid unsigned cast in eax check. * syscall.c (sys_indir): Make i, scno, and nargs signed. * desc.c (sys_select): Make cumlen unsigned Mon Apr 24 23:52:47 1995 Rick Sladkey * net.c (socktypes): Add SOCK_PACKET. Sun Apr 2 23:50:39 1995 Rick Sladkey * Makefile (clean): Check explicitly for a Makefile in subdirs before running make in them. Sun Mar 26 12:37:21 1995 Rick Sladkey * strace.c [MIPS] (proc_open): Conditionalize run on MIPS. [MIPS] (detach): Initialize error for MIPS case. (trace): Initialize ioctl_result and ioctl_errno for overly helpful compilers. * syscall.c (decode_subcall): Move variable i into conditionals that use use it. * system.c (syssgi_options): Conditionalize SGI_RECVLMSG and SGI_SET_FPDEBUG that SGI decided to drop. I don't have the stomach to change them all. * term.c (term_ioctl): Force [c_[iocl]flags members to long before printing since we don't know what the size of their type is. * util.c [SVR4, MIPS] (umoven): Prevent MIPS from using pread even if autoconf detects it since it seems to either not work or do something else entirely on Irix 5.3. Sun Mar 26 00:01:11 1995 Rick Sladkey * version.c: Version 3.0.2 is released. * linux/dummy.h: Make sys_fchdir like sys_close instead of printargs so that the file descriptor arg is decimal. Sat Mar 25 22:50:13 1995 Rick Sladkey * net.c [LINUX] (protocols): Explicitly define all IPPROTO_* entries because on Linux they are enumerators. * system.c [LINUX] (mount_flags): Handle renaming of MS_SYNC to MS_SYNCHRONOUS. * util.c (printxval): When there is no translation, print the actual number first and the the default value as a C comment. * net.c (sys_send, sys_sendto, sys_sendmsg, sys_getsockopt, sys_setsockopt): Change first argument from unsigned to signed to cater to the frequent practice of calling system calls with a file descriptor of -1. * mem.c (sys_mmap): Likewise. Sun Mar 19 13:53:52 1995 Rick Sladkey * signal.c [LINUX] (signalent): Handle old and new values of SIGIO. Sun Dec 11 22:51:51 1994 Rick Sladkey * version.c: Version 3.0.1 is released. * Makefile.in, configure.in, aclocal.m4: Changes for autoconf 2.0. * config.guess, config.guess: Update from the FSF. * install-sh: New from the FSF. Mon Dec 5 20:51:29 1994 Rick Sladkey * Makefile.in: Add m68k arch. * acconfig.h (M68K): Add m68k define. * configure.in: Add detection of arch m68k. * process.c [M68K] (struct_user_offsets): Support m68k registers and offsets. * signal.c [M68K] (sigcontext_struct): Support m68k sigcontext structure. [M68K] (sys_sigreturn): Support m68k sigreturn handling. * syscall.c [M68K] (syscall): Support m68k syscall number register and errno in d0 instead of eax. * util.c [M68K] (getpc, printcall, setbpt, clearbpt): Support m68k program counter in PT_PC instead of EIP. [M68K] (LOOP): Support m68k loop instruction. From Andreas Schwab . * mem.c [MAP_ANONYMOUS] (mmap_flags): Correct inadvertent reference to MAP_FIXED instead of MAP_ANONYMOUS. From Andreas Schwab . * signal.c [LINUX] (signalent): Signal 30 is now SIGPWR. From Andreas Schwab . Mon Dec 5 01:05:46 1994 Rick Sladkey * defs.h (tprintf): Fix typo in non-gcc ansi prototype for tprintf. Reported by Thanh Ma . * strace.c (cleanup): Send SIGCONT before SIGTERM because Linux 1.1.62 doesn't continue a traced child when the parent exits. Reported by Matt Day . * system.c [LINUX]: Include netinet/in.h before arpa/inet.h. * util.c (printstr): Fix longstanding bug in notating string continuation. * strace.c [SVR4] (proc_open): Specifically wait for the child the child to go into the execve syscall to avoid spurious traces. [LINUX] (detach): Conditionalize the status variable. Sun Dec 4 23:21:42 1994 Rick Sladkey * Makefile.in: Add mips arch. * acconfig.h (MIPS): Add mips define. * configure.in: Add detection of opsys irix5 and arch mips. Check for prctl function. Check for sys/sysconfig.h header. * defs.h (MAX_ARGS): Bump maximum syscall arguments from 8 to 32. * file.c [SVR4]: Include sys/cred.h. (access_flags): Update access flags for SGI. (sprinttime): Change type of sprinttime argument from unsigned long to time_t. * process.c [HAVE_PRCTL]: Include sys/prctl.h. [HAVE_PRCTL] (prctl_options, sys_prctl): New for SGI. (printsiginfo): Conditionally compile SI_TIMER and SI_MESGQ. Cast si_band member to long before printing. * signal.c (sigact_flags): Add _SA_BSDCALL for SGI. (sigprocmaskcmds): Add SIG_SETMASK32 for SGI. * strace.c [SVR4] [MIPS]: (foobar): New dummy signal handler. (main): Install a dummy signal handler in the child before pausing to work around an SGI bug in PRSABORT. (proc_open): Send a interrupt to the child instead of aborting the syscall which doesn't work on Irix5.2. * svr4/dummy.h: Add new unfinished SGI syscalls (e.g. sys_sysmp, sys_sginap, etc.). Handle some SGI syscalls like existing calls (e.g. sys_ksigaction like sys_sigaction). Printargs does the print thing for sys_sethostid. * svr4/syscall.h: Declare all new SGI syscalls. (SGI_KLUDGE): Define syscall table starting index to be 1 for SGI and add it to all subcall entry points. (SYS_pgrpsys_subcall, SYS_sigcall_subcall, SYS_context): Don't decode as subcalls on MIPS. Instead, use the normal syscalls. * svr4/syscallent.h [MIPS]: Lead syscall table with a dummy entry since SGI syscall numbers are off by one. [MIPS] (sys_pgrpsys): Rename to sys_setpgrp on SGI. [MIPS] (sys_xenix): Rename to sys_syssgi on SGI. [MIPS] (sys_sysmachine): Rename to sys_sysmips on SGI. [MIPS]: Conditionalize SVR4 extension into SGI and Solaris classes. * syscall.c (dumpio): Validate descriptor against MAX_QUALS. [HAVE_PR_SYSCALL] (syscall): Conditionalize SYS_vfork. [MIPS] (syscall): Add SGI section for decoding u_error and u_rval. Add workaround for broken SGI pr_sysarg on syscall entry. [SVR4] (syscall): Conditionalize subcall decoding for SYS_ptrpsys_subcall, SYS_sigcall_subcall and SYS_context_subcall. [SVR4] [MIPS] (getrval2): Handle SGI. * syscallent.sh: Dork the sed line to be choosier about SYS_ lines. * system.c [HAVE_SYSCONFIG_H]: Include sys/sysconfig.h. [MIPS] (syssgi_options, sys_syssgi): New for SGI.