12011-03-15 Dmitry V. Levin <ldv@altlinux.org> 2 3 Ensure that PTRACE_GETSIGINFO et al are always defined on Linux 4 * configure.ac (AC_CHECK_DECLS): Add PTRACE_* constants. 5 * defs.h [LINUX]: Define those PTRACE_* constants that are not provided 6 by <sys/ptrace.h>. 7 8 * CREDITS.in: Fix typo. 9 102011-03-14 Dmitry V. Levin <ldv@altlinux.org> 11 12 Update PTRACE_* constants 13 * process.c (ptrace_cmds): Add PTRACE_GETREGSET and PTRACE_SETREGSET. 14 15 Prepare for 4.6 release 16 * NEWS: Update for 4.6 release. 17 * configure.ac: Version 4.6. 18 * debian/changelog: 4.6-1. 19 * strace.spec: 4.6-1. 20 212011-03-14 Mike Frysinger <vapier@gentoo.org> 22 23 linux/ioctlent: unify them all 24 This unifies all the ioctlent.h's in the linux subdir while still 25 allowing each arch to maintain its own minor list. 26 27 The basic method is: 28 - each arch has linux/<arch>/ioctlent.h.in which defines only the 29 arch-specific ioctls; 30 - linux/ioctlent.h.in which defines only the common ioctls; 31 - at build time, these two headers are combined and sorted to produce 32 the linux/ioctlent.h file. 33 34 This also requires a little tweaking of the include files since the 35 common ioctlent.h is a built file. 36 37 * linux/ioctlent.h: Split into linux/ioctlent.h.in and 38 linux/i386/ioctlent.h.in, remove asm entries from the former, remove 39 non-asm entries from the latter. 40 * linux/alpha/ioctlent.h: Rename to linux/alpha/ioctlent.h.in, remove 41 non-asm entries. 42 * linux/bfin/ioctlent.h: Rename to linux/bfin/ioctlent.h.in, remove 43 non-asm entries. 44 * linux/hppa/ioctlent.h: Rename to linux/hppa/ioctlent.h.in, remove 45 non-asm entries. 46 * linux/ia64/ioctlent.h: Rename to linux/ia64/ioctlent.h.in, remove 47 non-asm entries. 48 * linux/mips/ioctlent.h: Rename to linux/mips/ioctlent.h.in, remove 49 non-asm entries. 50 * linux/powerpc/ioctlent.h: Rename to linux/powerpc/ioctlent.h.in, 51 remove non-asm entries. 52 * linux/s390/ioctlent.h: Rename to linux/s390/ioctlent.h.in, remove 53 non-asm entries. 54 * linux/sh/ioctlent.h: Rename to linux/sh/ioctlent.h.in, remove 55 non-asm entries. 56 * linux/sparc/ioctlent.h: Rename to linux/sparc/ioctlent.h.in, remove 57 non-asm entries. 58 * linux/arm/ioctlent.h.in: New file. 59 * linux/avr32/ioctlent.h.in: Likewise. 60 * linux/i386/ioctlent.h.in: Likewise. 61 * linux/m68k/ioctlent.h.in: Likewise. 62 * linux/microblaze/ioctlent.h.in: Likewise. 63 * linux/tile/ioctlent.h.in: Likewise. 64 * linux/x86_64/ioctlent.h.in: Likewise. 65 * linux/s390x/ioctlent.h.in: Include ioctlent.h.in instead of 66 ioctlent.h. 67 * linux/sh64/ioctlent.h.in: Likewise. 68 * linux/sparc64/ioctlent.h.in: Likewise. 69 * linux/arm/ioctlent1.h: Update ioctlent.h include. 70 * linux/powerpc/ioctlent1.h: Likewise. 71 * linux/sparc/ioctlent1.h: Likewise. 72 * linux/sparc64/ioctlent1.h: Likewise. 73 * linux/x86_64/ioctlent1.h: Likewise. 74 * Makefile.am (AM_CPPFLAGS): Add -I$(builddir)/$(OS). 75 (EXTRA_DIST): Update. 76 [MAINTAINER_MODE && LINUX]: Convert from ioctlent_h to ioctlent_h_in. 77 [LINUX]: Add $(builddir)/$(OS)/ioctlent.h generation rules. 78 * .gitignore: Add linux/ioctlent.h. 79 802011-03-10 Dmitry V. Levin <ldv@altlinux.org> 81 82 Show more details about signals received by traced processess 83 * strace.c [!USE_PROCFS] (trace): Differentiate output format depending 84 on PTRACE_GETSIGINFO success or failure. In the former case, use 85 printsiginfo() to show more details about received signal. 86 87 Get rid of PT_GETSIGINFO 88 * strace.c [!USE_PROCFS] (trace): Assume that PTRACE_GETSIGINFO is 89 available. Replace PT_GETSIGINFO with PTRACE_GETSIGINFO. Use 90 PTRACE_GETSIGINFO for all signals. 91 92 Enhance decoding of kernel-generated signals 93 * signal.c (printsiginfo) [LINUX]: Do not print uninteresting 94 zero-initialized fields. 95 96 Fix decoding of user-generated signals 97 * signal.c [LINUX] (SI_FROMUSER): Define. 98 [LINUX || SVR4] (printsiginfo) [SI_FROMUSER]: Enhance decoding. 99 100 Recognize SI_KERNEL and SI_ASYNCNL 101 * signal.c [LINUX] (SI_KERNEL, SI_ASYNCNL): Define. 102 [LINUX || SVR4] (siginfo_codes): Add entries for SI_KERNEL and 103 SI_ASYNCNL, reorder entries. 104 1052011-03-05 Sebastian Pipping <sebastian@pipping.org> 106 107 Take all git branches into account for generation of CREDITS file 108 * Makefile.am: Make CREDITS target depend on all git branches. 109 1102011-03-04 Dmitry V. Levin <ldv@altlinux.org> 111 112 Fix decoding of file descriptors 113 * defs.h (printfd): New function prototype. 114 * util.c (printfd): New function. 115 * file.c (print_dirfd): Update prototype to use printfd(). 116 (sys_openat, sys_faccessat, sys_newfstatat, sys_mkdirat, sys_linkat, 117 sys_unlinkat, sys_readlinkat, sys_renameat, sys_fchownat, sys_fchmodat, 118 sys_futimesat, sys_utimensat, sys_mknodat): Update use of print_dirfd(). 119 (sys_lseek, sys_llseek, sys_readahead, sys_ftruncate, sys_ftruncate64, 120 sys_fstat, sys_fstat64, sys_oldfstat, sys_fstatfs, sys_fstatfs64, 121 sys_fchdir, sys_fchroot, sys_linkat, sys_fchown, sys_fchmod, sys_fsync, 122 sys_readdir, sys_getdents, sys_getdirentries, sys_fsetxattr, 123 sys_fgetxattr, sys_flistxattr, sys_fremovexattr, sys_fadvise64, 124 sys_fadvise64_64, sys_inotify_add_watch, sys_inotify_rm_watch, 125 sys_fallocate): Use printfd() for decoding of file descriptors. 126 * desc.c (sys_fcntl, sys_flock, sys_close, sys_dup, do_dup2, 127 decode_select, sys_epoll_ctl, epoll_wait_common): Use printfd() for 128 decoding of file descriptors. 129 * io.c (sys_read, sys_write, sys_readv, sys_writev, sys_pread, 130 sys_pwrite, sys_sendfile, sys_sendfile64, sys_pread64, sys_pwrite64, 131 sys_ioctl): Likewise. 132 * mem.c (print_mmap, sys_mmap64): Likewise. 133 * signal.c (do_signalfd): Likewise. 134 * stream.c (decode_poll): Likewise. 135 * time.c (sys_timerfd_settime, sys_timerfd_gettime): Likewise. 136 Based on patch from Grant Edwards <grant.b.edwards@gmail.com>. 137 1382011-03-03 Sebastian Pipping <sebastian@pipping.org> 139 140 Print shutdown(2) modes as SHUT_* constants 141 * net.c (shutdown_modes): New xlat structure. 142 (sys_shutdown): Use shutdown_modes to decode 2nd syscall argument. 143 144 Fix decoding of inotify_init1() flags 145 * file.c (inotify_init_flags): New xlat structure. 146 (sys_inotify_init1): Use it instead of open_mode_flags. 147 1482011-03-03 Dmitry V. Levin <ldv@altlinux.org> 149 150 Fix struct xlat initialization bugs 151 * file.c (inotify_modes): Terminate with NULL entry. 152 * net.c (sock_type_flags): Make this array static. 153 (socketlayers): Add a comment that this array should remain not 154 NULL-terminated. 155 156 tests: avoid SIGPIPE 157 * tests/ptrace_setoptions: Replace "grep -q" with "grep > /dev/null". 158 The former may result to strace being killed by SIGPIPE, which in 159 certain configuratons may lead to generation of a core file. 160 Suggested by Mike Frysinger. 161 1622011-03-01 Mike Frysinger <vapier@gentoo.org> 163 164 tests: do not make missing /usr/bin/time a failure 165 * tests/init.sh (framework_skip_): New function. 166 (check_prog): Use it instead of framework_failure_. 167 1682011-02-27 Dmitry V. Levin <ldv@altlinux.org> 169 170 Generate an xz tar archive of the distribution 171 * configure.ac (AM_INIT_AUTOMAKE): Replace dist-bzip2 with dist-xz. 172 * Makefile.am: Update srpm target. 173 * make-dist: Update for dist-xz. 174 * strace.spec: Update Source tag. 175 * debian/watch: Update regexp. 176 * .gitignore: Add strace-*.tar.xz. 177 178 Use "make check" in debian/rules and strace.spec 179 * debian/control: Update Build-Depends. 180 * debian/rules: Run "make check". 181 * strace.spec: Update BuildRequires. Run "make check" in %check section. 182 183 Implement two basic "strace -f" tests 184 * Makefile.am (SUBDIRS): Add tests. 185 * configure.ac (AC_CONFIG_FILES): Add tests/Makefile. 186 * tests/.gitignore: New file. 187 * tests/Makefile.am: Likewise. 188 * tests/init.sh: Likewise. 189 * tests/ptrace_setoptions: Likewise. 190 * tests/strace-f: Likewise. 191 1922011-02-26 Dmitry V. Levin <ldv@altlinux.org> 193 194 ppc, s390, sparc: regenerate ioctlent.h files 195 * linux/powerpc/ioctlent.h: Regenerated using Fedora 15 kernel headers. 196 * linux/s390/ioctlent.h: Likewise. 197 * linux/sparc/ioctlent.h: Likewise. 198 199 Remove redundant ioctlent.h files 200 * linux/s390x/ioctlent.h: Replace old contents with include of 201 s390/ioctlent.h file. 202 * linux/sparc64/ioctlent.h: Replace old contents with include of 203 sparc/ioctlent.h file. 204 2052011-02-25 Dmitry V. Levin <ldv@altlinux.org> 206 207 ioctlsort: sync with ioctl_lookup() 208 * linux/ioctlsort.c (main): Use NR and TYPE bits only, to sync with 209 ioctl_lookup() which looks at these bits only. 210 211 Remove obsolete .cvsignore files 212 * test/.cvsignore: Rename to test/.gitignore. 213 * */.cvsignore, */*/.cvsignore: Removed. 214 215 Ignore generated intermediate header files 216 * .gitignore: Add ioctls.h and ioctldefs.h. 217 2182011-02-24 Dmitry V. Levin <ldv@altlinux.org> 219 220 Generate much of the CREDITS file from git log 221 * CREDITS.in: New file, derived from CREDITS, without names of 222 those who are listed as git log 'Author:'s. 223 * CREDITS: Remove file. 224 * Makefile.am [MAINTAINER_MODE] (CREDITS): New rule. 225 * .gitignore: Add CREDITS. 226 * .mailmap: New file, required to map git author names and email 227 addresses to canonical/preferred form. 228 2292011-02-23 Dmitry V. Levin <ldv@altlinux.org> 230 231 sparc: fix compilation warning 232 * file.c [!HAVE_LONG_LONG_OFF_T] (realprintstat): Cast st_size 233 to unsigned long. 234 235 Update the list of files that must be distributed 236 * Makefile.am (EXTRA_DIST): Add debian/source/format, debian/watch, 237 linux/ia64/signalent.h, linux/powerpc/ioctlent1.h, 238 linux/powerpc/syscallent1.h, linux/powerpc/errnoent1.h, 239 linux/powerpc/signalent1.h. 240 241 Fix compilation warning reported by gcc -Wunused-but-set-variable 242 * process.c (printwaitn) [!SUNOS4]: Do not define "exited" variable. 243 2442011-02-22 Mike Frysinger <vapier@gentoo.org> 245 246 ioctlsort: zero pad ioctl codes to 4 places 247 Zero padding the ioctl number will allow simple sorting via shell scripts. 248 249 * linux/ioctlsort.c (main): Output ioctl codes zero padded. 250 * linux/ioctlent.h: Regenerated. 251 252 Update mount flags to latest linux 253 * system.c (MS_RELATIME, MS_KERNMOUNT, MS_I_VERSION, 254 MS_STRICTATIME, MS_BORN): Define. 255 (mount_flags): Add MS_RELATIME, MS_KERNMOUNT, MS_I_VERSION, 256 MS_STRICTATIME, MS_BORN. 257 2582011-02-22 Dmitry V. Levin <ldv@altlinux.org> 259 260 Sync debian/changelog and strace.spec with packages 261 * debian/changelog: Sync with 4.5.20-2. 262 * strace.spec: Likewise. 263 2642011-02-20 Dmitry V. Levin <ldv@altlinux.org> 265 266 Add TRACE_DESC|TRACE_FILE flags to fanotify_* sysentries 267 * linux/*/syscallent.h: Add TD flag to fanotify_init. Add TD|TF flags 268 to fanotify_mark. 269 270 Fix flags of fallocate sysentries 271 * linux/*/syscallent.h: Fix sys_fallocate flags. 272 273 Add TRACE_DESC flag to epoll_create* sysentries 274 * linux/*/syscallent.h: Add TD flag to sys_epoll_create and 275 sys_epoll_create1. 276 277 Add TRACE_DESC flag to fgetxattr, flistxattr, and fremovexattr sysentries 278 * linux/*/syscallent.h: Add TD flag to sys_fgetxattr, sys_flistxattr, 279 and fremovexattr. 280 281 Add TRACE_FILE flag to swapoff sysentries 282 * linux/*/syscallent.h: Add TF flag to sys_swapoff. 283 284 Add TRACE_DESC flag to fadvise64* sysentries 285 * linux/*/syscallent.h: Add TD flag to sys_fadvise64 and 286 sys_fadvise64_64. 287 288 Add TRACE_DESC flag to mmap, mmap2, and old_mmap sysentries 289 * linux/*/syscallent.h: Add TD flag to sys_mmap and sys_old_mmap. 290 291 Do not initialize native_scno on platforms with only one personality 292 * linux/bfin/syscallent.h: Remove redundant native_scno initialization. 293 * linux/m68k/syscallent.h: Likewise. 294 * linux/microblaze/syscallent.h: Likewise. 295 296 Add LOOP_* ioctls defined in linux/loop.h 297 * linux/ioctlent.sh: Add LOOP_* ioctls (0x4C..) defined in linux/loop.h 298 header file. 299 * linux/ioctlent.h: Regenerated. 300 Reported by Mike Frysinger. 301 3022011-02-19 Dmitry V. Levin <ldv@altlinux.org> 303 304 Fix PTRACE_GETEVENTMSG usage and enhance test_ptrace_setoptions() 305 * strace.c (handle_ptrace_event): Fix PTRACE_GETEVENTMSG usage. 306 (test_ptrace_setoptions): Test that PTRACE_GETEVENTMSG works properly. 307 3082011-02-19 Mike Frysinger <vapier@gentoo.org> 309 310 linux/sparc: move to common syscall.h 311 Rather than constantly deal with the sparc/syscall.h going stale, merge 312 the few sparc-specific pieces into the linux/syscall.h header. 313 314 * linux/syscall.h: Add sparc-specific pieces from sparc/syscall.h. 315 * Makefile.am (EXTRA_DIST): Remove linux/sparc/syscall.h and 316 linux/sparc64/syscall.h. 317 * linux/sparc/syscall.h, linux/sparc64/syscall.h: Deleted. 318 319 sparc: add new funcs to syscall.h 320 Sync missing defs from the common syscall.h here. 321 322 * linux/sparc/syscall.h: Add sys_setfsuid, sys_pread64, and 323 sys_pwrite64 prototypes. 324 325 sparc: punt unused syscall.h.2 326 I can't find any mention of this header actually being used. 327 Seems to be a really old copy of the common syscall.h. 328 329 * Makefile.am (EXTRA_DIST): Remove linux/sparc/syscall.h.2. 330 * linux/sparc/syscall.h.2: Deleted. 331 3322011-02-19 Dmitry V. Levin <ldv@altlinux.org> 333 334 Fix raw exit_group(2) decoding 335 * syscall.c (trace_syscall_entering): Check for sys_exit instead of 336 SYS_exit to handle exit_group(2) as well as _exit(2). 337 3382011-02-18 Dmitry V. Levin <ldv@altlinux.org> 339 340 Optimize known_scno() 341 * syscall.c (known_scno): Do not check for native_scno field on 342 platforms that support only one personality. 343 344 * process.c (internal_exit) [IA64]: Remove redundant check. 345 3462011-02-09 Dmitry V. Levin <ldv@altlinux.org> 347 348 Fix biarch support in IO dumping 349 * syscall.c (dumpio): Switch on tcp->sys_func instead of tcp->scno 350 for more reliable results. 351 352 Simplify tprintf() declaration 353 * defs.h (tprintf): Simplify declaration. 354 3552011-02-05 Dmitry V. Levin <ldv@altlinux.org> 356 357 * defs.h (SYSCALL_NEVER_FAILS): Fix typo. 358 3592011-01-19 Dmitry V. Levin <ldv@altlinux.org> 360 361 Fix decoding of get[ug]id, gete[ug]id and setfs[ug]id return values 362 * defs.h (SYSCALL_NEVER_FAILS): New syscall flag. 363 * linux/dummy.h: Change redirection for sys_get[ug]id, sys_gete[ug]id 364 and setfs[ug]id. 365 * linux/*/syscallent.h: Set SYSCALL_NEVER_FAILS flag for get[ug]id, 366 gete[ug]id and setfs[ug]id syscalls. 367 * process.c [LINUX] (sys_getuid, sys_setfsuid): New functions. 368 * syscall.c (NF): New shorthand macro for use in syscallent.h files. 369 (get_error): Check SYSCALL_NEVER_FAILS flag. 370 Reported by Марк Коренберг <socketpair@gmail.com>. 371 372 * linux/*/syscallent.h: Fix typo in sys_newfstatat syscall flags. 373 3742011-01-18 Mike Frysinger <vapier@gentoo.org> 375 376 Blackfin: update ioctl list 377 * linux/bfin/ioctlent.h: Sync with latest kernel sources. 378 3792011-01-17 Dmitry V. Levin <ldv@altlinux.org> 380 381 Fix stat64 decoding on mips 382 * linux/mips/syscallent.h: Use sys_stat64() to decode stat64 syscall. 383 This fixes Debian bug #599028. 384 385 Update linux/*/syscallent.h files to match Linux kernel v2.6.37 386 * linux/alpha/syscallent.h: Add hooks for fanotify_init, fanotify_mark, 387 and prlimit64. 388 * linux/i386/syscallent.h: Likewise. 389 * linux/ia64/syscallent.h: Likewise. 390 * linux/m68k/syscallent.h: Likewise. 391 * linux/microblaze/syscallent.h: Likewise. 392 * linux/mips/syscallent.h: Likewise. 393 * linux/powerpc/syscallent.h: Likewise. 394 * linux/s390/syscallent.h: Likewise. 395 * linux/s390x/syscallent.h: Likewise. 396 * linux/sh/syscallent.h: Likewise. 397 * linux/sh64/syscallent.h: Likewise. 398 * linux/sparc/syscallent.h: Likewise. 399 * linux/x86_64/syscallent.h: Likewise. 400 * linux/arm/syscallent.h: Add hooks for accept4, fanotify_init, 401 fanotify_mark, and prlimit64. 402 * linux/hppa/syscallent.h: Add hook for prlimit64. 403 4042011-01-16 Dmitry V. Levin <ldv@altlinux.org> 405 406 block.c: cleanup 407 * block.c: Include <inttypes.h>. 408 (print_blkpg_req): Always decode struct blkpg_ioctl_arg. 409 Robustify decoding of strings. 410 (block_ioctl): Do not decode return values passed by pointers on exit 411 from failed syscalls. 412 Use format macros from inttypes.h to print values of type uint64_t. 413 4142011-01-15 Dmitry V. Levin <ldv@altlinux.org> 415 416 Add block ioctl support 417 * block.c: New file. 418 * Makefile.am (strace_SOURCES): Add it. 419 * defs.h [LINUX] (block_ioctl): New function. 420 * ioctl.c (ioctl_decode) [LINUX]: Use it to decode HDIO_* and BLK* 421 ioctls. 422 Patch by Jeff Mahoney <jeffm@suse.com> 423 4242011-01-14 Holger Hans Peter Freyther <zecke@selfish.org> 425 426 Parse SOL_SCTP socket options 427 * configure.ac (AC_CHECK_HEADERS): Add netinet/sctp.h. 428 * net.c [HAVE_NETINET_SCTP_H]: Include <netinet/sctp.h>. 429 [SOL_SCTP] (socksctpoptions): New xlat structure. 430 (sys_getsockopt, printsockopt): Parse SOL_SCTP options. 431 432 * net.c (socketlayers): Add more SOL_* constants from linux/socket.h 433 4342011-01-14 Dmitry V. Levin <ldv@altlinux.org> 435 436 strace.1: fix misleading italics 437 * strace.1: Use bold instead of italics for "-e trace=" keywords. 438 This fixes Debian bug #589323. 439 440 Update linux/ioctlent.h 441 * linux/ioctlent.h: Regenerate using linux v2.6.37 headers. 442 443 Add HDIO_* ioctls defined in linux/hdreg.h 444 * linux/ioctlent.sh: Add HDIO_* ioctls (0x03..) defined in 445 linux/hdreg.h header file. 446 This fixes Debian bug #450953. 447 4482011-01-13 Dmitry V. Levin <ldv@altlinux.org> 449 450 Test PTRACE_O_TRACECLONE and PTRACE_O_TRACEVFORK along with PTRACE_O_TRACEFORK 451 * strace.c (test_ptrace_setoptions): Add PTRACE_O_TRACECLONE and 452 PTRACE_O_TRACEVFORK to PTRACE_SETOPTIONS call, to test exactly 453 the same set of options that is going to be used later in trace(). 454 4552011-01-10 Dmitry V. Levin <ldv@altlinux.org> 456 457 * net.c (protocols): Add more IPPROTO_* constants defined in netinet/in.h 458 4592011-01-10 Holger Hans Peter Freyther <holger@freyther.de> 460 461 * net.c (protocols): Add IPPROTO_GRE, IPPROTO_SCTP and IPPROTO_UDPLITE. 462 4632011-01-10 Carmelo AMOROSO <carmelo.amoroso@st.com> 464 465 sh: Add entry for not-multiplexed accept4 466 * linux/sh/syscallent.h: Add specific entry for not-multiplexed accept4 467 available in kernel mainline since v2.6.37-rc6, see 468 http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=21b6e4c7106b2d68a6710506d8706608272fd78b 469 4702010-12-14 Carmelo AMOROSO <carmelo.amoroso@st.com> 471 472 sh: Add entries for not-multiplexed socket calls 473 * linux/sh/syscallent.h: Add specific entries for not-multiplexed 474 socket calls (available in kernel mainline since v2.6.37-rc1) 475 476 sh: Fix compilation warning in do_pipe due to missing prototype 477 * defs.h [SH]: Make getrval2 prototype visible to do_pipe 478 and fix the following compiler warning: 479 .../net.c: In function 'do_pipe': 480 .../net.c:1632: warning: implicit declaration of function 'getrval2' 481 .../net.c:1632: warning: format '%lu' expects type 'long unsigned int', 482 but argument 3 has type 'int' 483 4842010-12-14 Dmitry V. Levin <ldv@altlinux.org> 485 486 Fix build on uClibc 487 * defs.h [LINUX]: Define PTRACE_GETEVENTMSG macro. 488 Patch by Douglas Mencken <dougmencken@gmail.com>. 489 4902010-12-07 Dmitry V. Levin <ldv@altlinux.org> 491 492 Fix strace -f -o '|command' hangup 493 * strace.c (main): Call test_ptrace_setoptions() before parsing 494 -o option, otherwise a forked command will cause a hangup inside 495 test_ptrace_setoptions(). 496 4972010-12-03 Dmitry V. Levin <ldv@altlinux.org> 498 499 Output diagnostics to stderr 500 * syscall.c (get_scno): Output information about changes in 501 personality mode to stderr. Reported by Pádraig Brady. 502 503 Recognize more clone flags 504 * process.c (CLONE_*): Define more flags from linux v2.6.25. 505 (clone_flags): Add entries for them. 506 Proposed by <zhangyanfei@cn.fujitsu.com>. 507 508 Decode struct ucred for getsockopt SO_PEERCRED 509 * net.c (sys_getsockopt): Decode SO_PEERCRED. 510 Proposed by Arkadiusz Miśkiewicz <arekm@maven.pl>. 511 5122010-12-03 Carmelo AMOROSO <carmelo.amoroso@st.com> 513 514 sh: Add support for tracing sys_cacheflush system call 515 * linux/sh/syscallent.h: Update sys_cacheflush entry. 516 * linux/syscall.h [SH] (sys_cacheflush): New function declaration. 517 * system.c [SH] (cacheflush_flags): New xlat structure. 518 [SH] (sys_cacheflush): New function. 519 520 Reviewed-by: Angelo Castello <angelo.castello@st.com> 521 5222010-11-30 Dmitry V. Levin <ldv@altlinux.org> 523 524 Cleanup test_ptrace_setoptions() 525 * strace.c (test_ptrace_setoptions): Cleanup. 526 (main): Fix test_ptrace_setoptions() error diagnostics message. 527 Print ptrace_setoptions value in debug mode. 528 5292010-11-30 Wang Chao <wang.chao@cn.fujitsu.com> 530 531 Handle followfork using ptrace_setoptions if available 532 If PTRACE_O_TRACECLONE et al options are supported by kernel, 533 use them to do followfork rather than the original setbpt 534 method that changes registers ourselves. 535 536 * defs.h [LINUX] (handle_new_child): New function prototype. 537 * process.c [LINUX] (handle_new_child): New function based on the 538 code from internal_fork(), with a trivial change: do reparent only 539 for sys_clone. 540 [LINUX] (internal_fork): Use handle_new_child(). Do nothing if 541 ptrace_setoptions is in effect. 542 * strace.c [LINUX] (handle_ptrace_event): New function. 543 [LINUX] (trace): If ptrace_setoptions is in effect, then 544 call the new function to handle PTRACE_EVENT_* status, and 545 set PTRACE_SETOPTIONS when we see the initial stop of tracee. 546 547 Test how PTRACE_SETOPTIONS support works 548 Currently test fork related options only. Fork a child that uses 549 PTRACE_TRACEME at startup and then does a fork so strace can test 550 how the PTRACE_SETOPTIONS support works before it handles any real 551 tracee. Since PTRACE_O_TRACECLONE/*FORK were introduced to kernel 552 at the same time, this test seems to be enough for these 3 options. 553 554 * defs.h [LINUX]: Define PTRACE_O_TRACECLONE et al macros here. 555 (ptrace_setoptions): New variable declaration. 556 * strace.c [LINUX] (test_ptrace_setoptions): New function, tests 557 whether kernel supports PTRACE_O_CLONE/*FORK, the result is stored 558 in the new variable ptrace_setoptions for later use. 559 (main): Call test_ptrace_setoptions() if followfork option is set. 560 5612010-09-17 Dmitry V. Levin <ldv@altlinux.org> 562 563 Enable support for less verbose build rules 564 * configure.ac (AM_INIT_AUTOMAKE): Add silent-rules. 565 5662010-09-17 Wang Chao <wang.chao@cn.fujitsu.com> 567 568 Do not trace children cloned with CLONE_UNTRACED flag 569 If clone is called with flag CLONE_UNTRACED, to be consistent with 570 option PTRACE_O_TRACECLONE, we should not set CLONE_PTRACE flag on 571 its arguments. 572 573 * process.c [LINUX] (internal_fork): Check the syscall and arguments. 574 5752010-09-17 Dmitry V. Levin <ldv@altlinux.org> 576 577 Update the list of CLOCK_* constants to match Linux kernel v2.6.32+ 578 * time.c (struct xlat clocknames[]): Add more RT clock IDs. 579 Reported by Tommi Rantala. 580 5812010-09-16 Dmitry V. Levin <ldv@altlinux.org> 582 583 Update linux/hppa/syscallent.h to match Linux kernel v2.6.35 584 * linux/hppa/syscallent.h: Add hooks for recvmmsg and accept4. 585 5862010-09-15 Dmitry V. Levin <ldv@altlinux.org> 587 588 Pass less information to qualify_one and qual_* 589 * syscall.c (qualify_one, qual_syscall, qual_signal, qual_fault, 590 qual_desc): Take just a bitflag argument instead of pointer to the whole 591 qual_options structure. 592 (struct qual_options): Update prototype of "qualify" field. 593 (qualify): Update use of qualify_one and qual_options->qualify. 594 5952010-09-15 Wang Chao <wang.chao@cn.fujitsu.com> 596 597 Fix -e option with only one value in qualifier statement 598 Fix regression introduced by commit v4.5.20-19-g30145dd: 599 if -e option is used with only one value in qualifier statement, 600 e.g. 'strace -e trace=open ls', syscall information would not be 601 printed properly. 602 603 * syscall.c (qualify): Remove faulty optimization. 604 6052010-09-15 Mike Frysinger <vapier@gentoo.org> 606 607 Fix off_t/rlim_t size checks when cross-compiling 608 The current off_t/rlim_t size checks (wrt size of long long) use AC_RUN 609 which obviously doesn't work when cross-compiling. While we don't hit 610 any configure errors, the fall back code is pretty dumb (which is to say 611 there isn't any). Considering the code in question though, we can use 612 some fun compiler tricks with sizeof and array lengths to turn it into 613 a pure build test and avoid the RUN issue completely. 614 615 * m4/long_long.m4 (AC_OFF_T_IS_LONG_LONG, AC_RLIM_T_IS_LONG_LONG): 616 Convert from AC_RUN_IFELSE to AC_COMPILE_IFELSE. 617 618 Fix long long little endian detection when cross-compiling 619 The long long endian detection code does an AC_TRY_RUN() and since that 620 doesn't work when cross-compiling, it sets a fallback value. However, 621 rather than do any sort of default endian detection, the code simply 622 sets it to "no". This probably breaks most little endian systems out 623 there when cross-compiling for them. It certainly breaks Blackfin 624 systems. So use the common endian detection code provided by autoconf 625 and key off of that when cross-compiling. 626 627 * configure.ac: Call AC_C_BIGENDIAN. 628 * m4/long_long.m4 (AC_LITTLE_ENDIAN_LONG_LONG): Set cross-compiling 629 logic based on ac_cv_c_bigendian. 630 631 Blackfin: decode new syscalls 632 * linux/bfin/syscallent.h: Add fanotify/prlimit/cacheflush syscalls. 633 * linux/syscall.h: Add sys_cacheflush() decl. 634 * system.c: Decode Blackfin's cacheflush syscall. 635 636 * linux/ioctlent.sh: Search a few non-exported paths. 637 6382010-09-15 Roland McGrath <roland@redhat.com> 639 640 Clean up pid2tcb usage 641 * strace.c (pid2tcb): Always match pid. Fail for argument <= 0. 642 [USE_PROCFS] (first_used_tcb): New function. 643 [USE_PROCFS] (trace): Use that instead of pid2tcb(0). 644 6452010-09-09 Dmitry V. Levin <ldv@altlinux.org> 646 647 Turn on more compiler warnings 648 * configure.ac: Enable gcc -Wwrite-strings. 649 650 Import warnings.m4 from gnulib 651 * m4/warnings.m4: Replace with warnings.m4 from gnulib. 652 * configure.ac: Use gl_WARN_ADD from new warnings.m4. 653 * Makefile.am (AM_CFLAGS): Update for new warnings.m4. 654 655 Split acinclude.m4 656 * Makefile.am (ACLOCAL_AMFLAGS): Add "-I m4". 657 * acinclude.m4: Remove. 658 * m4/includedir.m4: New file, with definition of AC_INCLUDEDIR from 659 acinclude.m4. 660 * m4/long_long.m4: New file, with definitions of AC_OFF_T_IS_LONG_LONG, 661 AC_RLIM_T_IS_LONG_LONG and AC_LITTLE_ENDIAN_LONG_LONG from acinclude.m4. 662 * m4/procfs.m4: New file, with definitions of AC_MP_PROCFS, 663 AC_POLLABLE_PROCFS and AC_STRUCT_PR_SYSCALL from acinclude.m4. 664 * m4/stat.m4: New file, with definition of AC_STAT64 from acinclude.m4. 665 * m4/statfs.m4: New file, with definition of AC_STATFS64 from 666 acinclude.m4. 667 * m4/warnings.m4: New file, with definition of AC_WARNFLAGS from 668 acinclude.m4. 669 670 * process.c (sys_waitid): Remove unused variable. 671 6722010-09-07 Dmitry V. Levin <ldv@altlinux.org> 673 674 Fix const-correctness issues uncovered by gcc -Wwrite-strings 675 * defs.h (struct xlat): Add const qualifier to the field of 676 type "char *". 677 (set_sortby, qualify, printnum, printnum_int): Add const qualifier to 678 arguments of type "char *". 679 * count.c (set_sortby): Add const qualifier to the argument and 680 automatic variable of type "char *". 681 * desc.c (decode_select): Add const qualifier to automatic variables of 682 type "char *". 683 * ioctlsort.c (struct ioctlent): Add const qualifier to fields of 684 type "char *". 685 (main): Add const qualifier to argv. 686 * process.c (printargv): Add const qualifier to the argument and 687 automatic variable of type "char *". 688 (printargc) Add const qualifier to argument of type "char *". 689 * signal.c (sprintsigmask, parse_sigset_t): Add const qualifier to 690 arguments of type "char *". 691 * strace.c (progname): Add const qualifier. 692 (detach): Add const qualifier to automatic variable of type "char *". 693 * stream.c (struct strbuf): Add const qualifier to the field of 694 type "char *". 695 * syscall.c (struct qual_options): Add const qualifier to fields of 696 type "char *". 697 (qual_syscall, qual_fault, qual_desc, lookup_class): Add const qualifier 698 to arguments of type "char *". 699 (qual_signal): Add const qualifier to the argument of type "char *", 700 avoid modification of constant argument. 701 (qualify): Likewise. 702 * util.c (printflags): Add const qualifier to automatic variable of 703 type "char *". 704 (printnum, printnum_int): Add const qualifier to arguments of 705 type "char *". 706 7072010-09-04 Wang Chao <wang.chao@cn.fujitsu.com> 708 709 Fix printing clone flags 710 When we trace clone() syscall with only exit signal as clone 711 flags, strace would print an unnecessary OR operator. 712 713 * process.c (sys_clone): Fix this. 714 7152010-08-28 Wang Chao <wang.chao@cn.fujitsu.com> 716 717 Drop nclone_detached and related flags 718 Remove nclone_detached since CLONE_DETACHED flag was no-op for a very 719 long time in kernel. 720 721 * defs.h (struct tcb): Remove nclone_detached field. 722 Remove TCB_CLONE_DETACHED flag. 723 * process.c: Remove CLONE_DETACHED flag. 724 (clone_flags): Remove CLONE_DETACHED entry. 725 (internal_fork, internal_wait): Remove code dealing with CLONE_DETACHED 726 flag and nclone_detached. 727 * strace.c (startup_attach, alloc_tcb, droptcb, handle_group_exit): 728 Likewise. 729 7302010-08-09 Neil Campbell <lists@thebatcave.org.uk> 731 732 Correct get/set_robust_list syscall numbers for powerpc 733 * linux/powerpc/syscallent.h: Swap positions of get_ and set_robust_list. 734 7352010-08-09 Wang Chao <wang.chao@cn.fujitsu.com> 736 737 Handle CLONE_PARENT flag 738 * process.c (internal_fork): The parent of new cloned process is the 739 same of the calling process when CLONE_PARENT is set. 740 741 Fix error when judging if process has children 742 * process.c (internal_wait): Processes counted in tcp->nclone_threads 743 are tcp's threads, rather than tcp's children. 744 745 Forbid using mutually exclusive options -D and -p together 746 If we use -D and -p option together to trace a multi-thread program, in 747 addition to the main thread, other threads could not be traced even if we 748 present -f option. Moreover, when executing 'strace -D -p <non-exist pid>', 749 strace could not terminate normally. 750 751 * strace.c (main): Check it. 752 7532010-08-05 David Daney <ddaney@caviumnetworks.com> 754 755 Update Linux MIPS syscalls to match 2.6.35-rc6+ 756 * linux/mips/syscallent.h: Add and update 405 hooks. 757 7582010-08-05 Edgar E. Iglesias <edgar.iglesias@gmail.com> 759 760 Add support for the MicroBlaze architecture 761 * configure.ac: Recognize MicroBlaze. 762 * linux/microblaze/syscallent.h: New file. 763 * Makefile.am (EXTRA_DIST): Add linux/microblaze/syscallent.h 764 * process.c (change_syscall, struct_user_offsets): Add MicroBlaze 765 support. 766 * signal.c (sys_sigreturn): Likewise. 767 * syscall.c (internal_syscall, get_scno, syscall_fixup, get_error, 768 syscall_enter): Likewise. 769 7702010-08-05 Frederik Schüler <fs@debian.org> 771 772 linux/sparc: add missing syscall declarations 773 * linux/sparc/syscall.h: Sync with linux/syscall.h 774 7752010-07-17 Andreas Schwab <schwab@linux-m68k.org> 776 777 Handle biarch get/setrlimit 778 * resource.c (print_rlimit32) [POWERPC64 || X86_64]: Define. 779 (sys_getrlimit, sys_setrlimit) [POWERPC64 || X86_64]: Use it. 780 7812010-07-13 Andreas Schwab <schwab@linux-m68k.org> 782 783 Add biarch support for powerpc64 784 * acinclude.m4 (AC_LITTLE_ENDIAN_LONG_LONG): Use int instead of 785 long. 786 * configure.ac [$host_cpu = powerpc*]: Also define POWERPC64 if 787 $host_cpu = powerpc64. 788 * defs.h (SUPPORTED_PERSONALITIES, PERSONALITY0_WORDSIZE) 789 (PERSONALITY1_WORDSIZE) [POWERPC64]: Define. 790 * file.c: (struct stat_powerpc32, printstat_powerpc32) [POWERPC64]: 791 Define. 792 (printstat) [LINUX && POWERPC64]: Use printstat_powerpc32 in 793 32-bit personality. 794 (sys_newfstatat) [POWERPC64]: Handle personalities. 795 * signal.c (sys_sigreturn) [POWERPC64]: Likewise. 796 * util.c (printllval) [POWERPC64]: Likewise. 797 (printcall) [POWERPC64]: Use wider format for IP prefix. 798 * syscall.c (get_scno) [POWERPC64]: Check for 64/32 bit mode. 799 * linux/powerpc/errnoent1.h: New file. 800 * linux/powerpc/ioctlent1.h: New file. 801 * linux/powerpc/signalent1.h: New file. 802 * linux/powerpc/syscallent1.h: New file. 803 8042010-07-09 Andreas Schwab <schwab@redhat.com> 805 806 Balance braces 807 * strace.c (proc_open): Avoid unbalanced braces. 808 (trace): Likewise. 809 8102010-07-06 Andreas Schwab <schwab@linux-m68k.org> 811 812 Remove extern declaration at file scope 813 * defs.h (force_result): Declare. 814 * process.c (internal_wait): Don't declare force_result. 815 8162010-06-24 Andreas Schwab <schwab@redhat.com> 817 818 Document -C/-D 819 * strace.c (usage): Document -C. 820 * strace.1: Document -D. 821 8222010-06-13 Roland McGrath <roland@redhat.com> 823 824 Fix sourceforge download URL. 825 8262010-06-05 Andreas Schwab <schwab@linux-m68k.org> 827 828 M68K: Fix fetching syscall arguments 829 * syscall.c (syscall_enter) [M68K]: Properly handle more than five 830 syscall arguments. 831 8322010-05-28 Andreas Schwab <schwab@linux-m68k.org> 833 834 Decode TLS syscalls on m68k 835 * linux/m68k/syscallent.h: Add entries for get_thread_area, 836 set_thread_area, atomic_comxchg_32, atomic_barrier. 837 * linux/dummy.h (sys_get_thread_area, sys_set_thread_area) [M68K]: 838 Don't redefine. 839 * mem.c (sys_get_thread_area, sys_set_thread_area) [LINUX && M68K]: New. 840 841 Fix warning when compiling for m68k 842 * syscall.c (d0): Define as long. 843 8442010-04-13 Dmitry V. Levin <ldv@altlinux.org> 845 846 Prepare for 4.5.20 release 847 * NEWS: Update for 4.5.20 release. 848 * configure.ac: Version 4.5.20. 849 * debian/changelog: 4.5.20-1. 850 * strace.spec: 4.5.20-1. 851 8522010-04-13 Frederik Schüler <fs@debian.org> 853 854 Update debian/* files for the upcoming release 855 * debian/control: update standards-version to 3.8.4. 856 * debian/rules: allow parallel building. 857 * debian/rules: comment out verbose build, only needed for debugging. 858 * debian/rules: clean up clean: target, dh_clean does most of the work 859 already. 860 * debian/rules: use *-stamp instead of stamp-*, so dh_clean can tidy 861 up for us. 862 8632010-04-13 Heiko Carstens <heiko.carstens@de.ibm.com> 864 865 Fix s390 system call table list 866 * linux/s390/syscallent.h: Add the missing entries for preadv and 867 pwritev to the system call table list. 868 * linux/s390x/syscallent.h: Likewise. 869 8702010-04-07 Dmitry V. Levin <ldv@altlinux.org> 871 872 Update linux/ioctlent.h 873 * linux/ioctlent.sh: Search in asm-generic directory as well. 874 * linux/ioctlent.h: Regenerated. 875 876 Update linux/*/syscallent.h files to match Linux kernel v2.6.33 877 * linux/alpha/syscallent.h: Add 47 hooks. 878 * linux/arm/syscallent.h: Update hooks for pselect6, ppoll, 879 epoll_pwait. Add 11 hooks. 880 * linux/bfin/syscallent.h: Update hooks for prctl, fallocate, 881 signalfd4, eventfd2, epoll_create1, dup3, pipe2, perf_event_open. 882 Hook up recvmmsg. 883 * linux/hppa/syscallent.h: Update hooks for signalfd4, eventfd2, 884 epoll_create1, dup3, pipe2, perf_event_open. 885 * linux/i386/syscallent.h: Fix syscall name for the kexec_load hook. 886 Add 5 hooks. 887 * linux/ia64/syscallent.h: Fix syscall name for the kexec_load hook. 888 Add 4 hooks. 889 * linux/m68k/syscallent.h: Add 50 hooks. 890 * linux/powerpc/syscallent.h: Fix hook for timerfd_create. Fix 891 6 syscall names to match the kernel. Use sys_semop to parse semop. 892 Add 14 hooks. 893 * linux/s390/syscallent.h: Fix syscall name for the kexec_load hook. 894 Add 14 hooks. 895 * linux/s390x/syscallent.h: Likewise. 896 * linux/sh/syscallent.h: Add 13 hooks. 897 * linux/sh64/syscallent.h: Add 15 hooks. 898 * linux/sparc/syscallent.h: Add 22 hooks. 899 * linux/x86_64/syscallent.h: Add 5 hooks. 900 901 Enhance recvmmsg parser 902 * net.c (sys_recvmmsg): Decode mmsghdr structure on exit from the 903 syscall. Decode timespec structure both on entrance and on exit. 904 9052010-04-07 Andreas Schwab <schwab@linux-m68k.org> 906 907 Decode recvmmsg syscall 908 * net.c (do_msghr): New function to print struct msghdr. 909 (printmsghdr): Use it. 910 (printmmsghdr, sys_recvmmsg): New. 911 * linux/syscall.h: Declare sys_recvmmsg. 912 (SYS_sub_recvmmsg): Define. 913 (SYS_socket_nsubcalls): Bump. 914 * linux/sparc/syscall.h: Likewise. 915 * linux/arm/syscallent.h: Add sys_recvmmsg. 916 * linux/bfin/syscallent.h: Likewise. 917 * linux/i386/syscallent.h: Likewise. 918 * linux/m68k/syscallent.h: Likewise. 919 * linux/powerpc/syscallent.h: Likewise. 920 * linux/s390/syscallent.h: Likewise. 921 * linux/s390x/syscallent.h: Likewise. 922 * linux/sh/syscallent.h: Likewise. 923 * linux/sh64/syscallent.h: Likewise. 924 * linux/sparc/syscallent.h: Likewise. 925 * linux/ia64/syscallent.h: Adjust. 926 9272010-04-07 Dmitry V. Levin <ldv@altlinux.org> 928 929 * strace.1: Fix quoting of hyphens and formatting of strace options. 930 931 Split trace_syscall() for better readability 932 * syscall.c (trace_syscall): Split into trace_syscall_exiting() and 933 trace_syscall_entering(). 934 935 Implement -C option to combine regular and -c output 936 * defs.h (cflag_t): New enum. 937 * strace.1: Document -C option. 938 * strace.c (cflag): Update type. 939 (main): Handle -C option. 940 (trace): Update use of cflag. 941 * count.c (count_syscall): Move clearing of TCB_INSYSCALL to ... 942 * syscall.c (trace_syscall): ... here. Update use of cflag. 943 Based on patch by Adrien Kunysz. 944 945 Fix "make dist" regression introduced by commit v4.5.19-12-g5078770 946 * Makefile.am (EXTRA_DIST): Rename linux/syscallent.h to linux/i386/syscallent.h 947 948 * desc.c (sys_epoll_pwait): Fix output formatting bug. 949 950 * desc.c (decode_select): Fix potential stack buffer overflow. 951 9522010-03-31 Dmitry V. Levin <ldv@altlinux.org> 953 954 Fix msgsnd indirect ipccall decoding 955 This regression was introduced by commit v4.5.18-136-g783f5bc. 956 * ipc.c (tprint_msgsnd): Add and use "flags" argument. 957 (sys_msgsnd): Pass "flags" argument to tprint_msgsnd(). 958 Patch by Anton Blanchard. 959 9602010-03-23 Mark Wielaard <mjw@redhat.com> 961 962 Hook up inotify_init1 open mode flags printer 963 * file.c [LINUX] (sys_inotify_init1): New function. 964 * linux/syscall.h: Declare new sys_inotify_init1 handler. 965 * linux/bfin/syscallent.h: Hook up new handler. 966 * linux/hppa/syscallent.h: Likewise. 967 * linux/i386/syscallent.h: Likewise. 968 * linux/x86_64/syscallent.h: Likewise. 969 9702010-03-09 Andreas Schwab <schwab@redhat.com> 971 972 Avoid spurious error when checking for linux/netlink.h 973 * configure.ac: Include <asm/types.h> when checking for 974 linux/netlink.h. 975 9762010-02-23 Andreas Schwab <schwab@linux-m68k.org> 977 978 Fix reporting signal mask by sigreturn on powerpc 979 * signal.c (sys_sigreturn) [POWERPC]: Skip dummy stack frame when 980 locating signal context. 981 9822010-02-09 David Daney <ddaney@caviumnetworks.com> 983 984 Fix MIPS N32/N64 compile error 985 * syscall.c [LINUX_MIPSN32 || LINUX_MIPSN64] (syscall_enter): Pass 986 tcp->pid to ptrace(). 987 9882010-02-05 Chris Metcalf <cmetcalf@tilera.com> 989 990 Add support for the TILE architecture 991 * configure.ac: Add TILE to the list of supported architectures. 992 * defs.h: Define TCB_WAITEXECVE for TILE. 993 * linux/tile/syscallent.h: New file. 994 * Makefile.am (EXTRA_DIST): Add linux/tile/syscallent.h 995 * process.c (change_syscall, struct_user_offsets): Add TILE support. 996 * syscall.c (get_scno, get_error, syscall_enter): Likewise. 997 * mem.c (mmap_flags, print_mmap): Add MAP_CACHE_xxx TILE extensions 998 support. 999 * signal.c (sigact_flags): Add SA_NOPTRACE. 1000 (sys_sigreturn): Add TILE support. 1001 10022010-02-04 Dmitry V. Levin <ldv@altlinux.org> 1003 1004 Remove dead code 1005 * defs.h (tv_tv): Remove. 1006 * net.c (sys_xsetsockaddr): Remove commented out dead code. 1007 * process.c (setarg, sys_execv, sys_execve, struct_user_offsets): 1008 Likewise. 1009 * signal.c (sys_sigsuspend): Likewise. 1010 * strace.c (reaper, trace): Likewise. 1011 * stream.c (internal_stream_ioctl): Likewise. 1012 * syscall.c (trace_syscall): Likewise. 1013 * term.c (term_ioctl): Likewise. 1014 * util.c (tv_tv, umoven, uload, getpc, fixvfork, setbpt, clearbpt): 1015 Likewise. 1016 1017 Merge Linux internal_clone() into internal_fork() 1018 * defs.h (internal_clone): Remove. 1019 * process.c (internal_clone): Merge into internal_fork(). 1020 (internal_fork) [!LINUX]: Remove dead code. 1021 * syscall.c (internal_syscall): Replace internal_clone() with 1022 internal_fork(). 1023 1024 * Makefile.am (INCLUDES): Remove redundant search directories. 1025 10262010-02-04 Frederik Schüler <fs@debian.org> 1027 1028 Update debian/* files 1029 * debian/control: add sparc64 to the architectures list. 1030 This closes Debian bug #560062 1031 * Backport commit f0df31e71a58c6e79ba77c1a9d84b2f38d44bec7 to fix FTBFS. 1032 This closes Debian bug #560516 1033 * debian/control: Update standards-version to 3.8.3. 1034 * debian/control: Lower package priority to optional, matching 1035 the archive override. 1036 * debian/control: add ${misc:Depends} to Depends: lines where 1037 appropriate. 1038 * debian/watch: new file, allows automatic tracking of new 1039 upstream versions. 1040 * debian/source/format: new file, adapt to debian source format "quilt" 1041 * debian/rules: indentation cleanups; use dh_testroot and dh_prep 1042 in clean target. 1043 10442010-01-25 Andreas Schwab <schwab@redhat.com> 1045 1046 Fix spurious failure of AC_STAT64 test 1047 * acinclude.m4 (AC_STAT64): Include <sys/types.h> first. 1048 10492010-01-12 Andreas Schwab <schwab@redhat.com> 1050 1051 Don't kill the process when detaching 1052 * strace.c (detach): Call clearbpt when TCB_BPTSET is set. 1053 10542009-12-25 Dmitry V. Levin <ldv@altlinux.org> 1055 1056 Decode fifth argument of mremap syscall 1057 * mem.c (sys_mremap): Decode fifth argument. 1058 * linux/*/syscallent.h: Update the number of mremap syscall arguments. 1059 10602009-12-24 Chris Metcalf <cmetcalf@tilera.com> 1061 1062 * mem.c (sys_mbind): Display first argument in hex 1063 1064 * mem.c (mremap_flags): Add MREMAP_FIXED 1065 10662009-11-16 Mike Frysinger <vapier@gentoo.org> 1067 1068 Move i386-specific files out of common linux dir 1069 * linux/syscallent.h: Moved to ... 1070 * linux/i386/syscallent.h: ... here. 1071 * linux/ia64/syscallent.h: Update i386 syscallent.h include. 1072 * linux/sparc/gen.pl: Likewise. 1073 * linux/x86_64/syscallent1.h: Likewise. 1074 10752009-11-16 Andreas Schwab <schwab@redhat.com> 1076 1077 Remove support for pre-C89 1078 * defs.h: Remove references to __STDC__ and P macros. 1079 * strace.c: Likewise. 1080 10812009-11-13 Dmitry V. Levin <ldv@altlinux.org> 1082 1083 Decode more SOL_PACKET socket options 1084 * net.c (sockpacketoptions): Add more PACKET_* entries. 1085 (sys_getsockopt): Decode PACKET_STATISTICS. 1086 (printsockopt): Decode PACKET_RX_RING and PACKET_TX_RING. 1087 Patch by Gabor Gombas. 1088 10892009-11-11 Andreas Schwab <schwab@redhat.com> 1090 1091 Ignore errors if a thread is killed 1092 * util.c (clearbpt): Ignore ESRCH error. 1093 10942009-11-06 Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> 1095 1096 Fix handling of Linux systems without struct statfs64 1097 * acinclude.m4 (AC_STATFS64): New macro to check for struct statfs64. 1098 * configure.ac: Call AC_STATFS64. 1099 * file.c (printstatfs64, sys_statfs64, sys_fstatfs64): Compile only 1100 if struct statfs64 is available. 1101 11022009-11-06 Dmitry V. Levin <ldv@altlinux.org> 1103 1104 Fix getsockopt decoding on architectures where sizeof(long) > sizeof(int) 1105 * net.c (sys_getsockopt): Optimize output a bit. 1106 Decode integer argument using printnum_int(), patch by Gabor Gombas. 1107 1108 Check umove() return code 1109 * bjm.c (sys_query_module): Print input parameters when entering 1110 syscall. Fix handling of syscall error. Handle unlikely umove() 1111 failures. 1112 * ipc.c (tprint_msgrcv): New function. Move part of msgrcv parser code 1113 here, add check umove() return code. 1114 (sys_msgsnd): Print msqid parameter as int instead of long. 1115 (sys_msgrcv): Likewise. Use tprint_msgrcv(). 1116 * process.c (print_affinitylist): Check umove() return code. 1117 * sock.c (sock_ioctl): Handle unlikely umove() failure in the 1118 SIOCGIFCONF parser. 1119 1120 Fix check for linux/netlink.h on Linux 2.6.32-rc5+ 1121 * configure.ac (AC_CHECK_HEADERS): In check for linux/netlink.h, include 1122 sys/socket.h instead of linux/socket.h beforehand. 1123 11242009-11-04 Andreas Schwab <schwab@redhat.com> 1125 1126 Decode fallocate on PowerPC 1127 * linux/powerpc/syscallent.h: Decode fallocate. 1128 1129 Factor out printing of 64bit syscall argument 1130 * defs.h (ALIGN64): Remove. 1131 (printllval): Declare. 1132 * util.c (printllval): Define. 1133 * file.c (sys_readahead): Use printllval. 1134 (sys_lseek64): Likewise. 1135 (sys_truncate64): Likewise. 1136 (sys_ftruncate64): Likewise. 1137 (sys_fadvise64): Likewise. 1138 (sys_fadvise64_64): Likewise. 1139 (sys_fallocate): Likewise. 1140 * io.c (sys_pread): Likewise. 1141 (sys_pwrite): Likewise. 1142 (sys_pread64): Likewise. 1143 (sys_pwrite64): Likewise. 1144 * mem.c (sys_mmap64): Likewise. 1145 11462009-11-03 Andreas Schwab <schwab@redhat.com> 1147 1148 Correct decoding of readahead and fadvice64(_64) on PowerPC 1149 * file.c (sys_readahead): Align 64bit argument. Handle PowerPC64 1150 like other 64bit architectures. 1151 (sys_fadvise64): Likewise. 1152 (sys_fadvise64_64): Handle PowerPC like ARM. 1153 * linux/powerpc/syscallent.h (sys_readahead): Account for 64bit 1154 argument alignment on PowerPC32. 1155 11562009-10-27 Andreas Schwab <schwab@redhat.com> 1157 1158 Maintain separate print column for each process 1159 * defs.h (struct tcp): Add curcol. 1160 * strace.c: (alloc_tcb): Initialize it. 1161 (trace): Use curcol from current process and save it before 1162 continuing. 1163 (tprintf): Don't modify curcol on output error. 1164 11652009-10-21 Roland McGrath <roland@redhat.com> 1166 1167 * strace.spec: 4.5.19-1 release. 1168 11692009-10-21 Dmitry V. Levin <ldv@altlinux.org> 1170 1171 * file.c (printstat64): Cleanup trailing whitespace. 1172 11732009-10-16 Andreas Schwab <schwab@redhat.com> 1174 1175 Fix decoding of newfstatat syscall on x86-64 1176 * file.c (printstat64) [LINUX && X68_64]: If tracing a 64-bit 1177 process redirect to printstat. 1178 Fixes RH#529316 "Field values shown for "newfstatat" system 1179 call are incorrect" 1180 11812009-10-12 Dmitry V. Levin <ldv@altlinux.org> 1182 1183 * configure.ac (AC_CHECK_HEADERS): Remove asm/reg.h. 1184 11852009-10-12 Mike Frysinger <vapier@gentoo.org> 1186 1187 sparc/linux: Rewrite to use asm/ptrace.h 1188 The current sparc/linux code uses asm/reg.h, but recent Linux kernels 1189 dropped that header completely. So switch over to the ptrace headers 1190 as those should stick around indefinitely as part of the ABI. 1191 1192 * defs.h [LINUXSPARC] (U_REG_G1, U_REG_O0, U_REG_O1): Define. 1193 * process.c: Drop asm/regs.h include. 1194 [SPARC || SPARC64] (change_syscall): Change struct regs to struct pt_regs. 1195 * signal.c: Drop asm/regs.h include. 1196 (m_siginfo_t): Unify [SPARC || SPARC64] and [MIPS]. 1197 [SPARC || SPARC64] (sys_sigreturn): Change struct regs to struct pt_regs. 1198 * syscall.c: Drop asm/regs.h include. 1199 [SPARC || SPARC64] (internal_syscall, get_scno, get_error, force_result, 1200 syscall_enter): Change struct regs to struct pt_regs. 1201 * util.c: Drop asm/regs.h include. 1202 (_hack_syscall5, _ptrace): Delete. 1203 [SPARC || SPARC64] (getpc, printcall, arg_setup_state): Change 1204 struct regs to struct pt_regs. 1205 12062009-10-11 Roland McGrath <roland@redhat.com> 1207 1208 * make-dist: Clean up. 1209 1210 * configure.ac: Use AC_CONFIG_AUX_DIR([.]). 1211 12122009-10-09 Dmitry V. Levin <ldv@altlinux.org> 1213 1214 * make-dist: New script for preparing release tarballs. 1215 1216 * git-set-file-times: Import from rsync. 1217 1218 * Makefile.am [MAINTAINER_MODE]: Define and export TAR_OPTIONS. 1219 12202009-10-08 Dmitry V. Levin <ldv@altlinux.org> 1221 1222 Enhance msgsnd() parser 1223 * ipc.c (tprint_msgsnd): New function. Move msgsnd parser code here, 1224 add check for umove() return code. 1225 (sys_msgsnd): Use tprint_msgsnd(). 1226 1227 * NEWS: Update for 4.5.19 release. 1228 1229 Enhance semop()/semtimedop() sembuf parser 1230 * ipc.c (tprint_sembuf): New function. Move sembuf parser code here, 1231 add abbrev() support. 1232 (sys_semop, sys_semtimedop): Use tprint_sembuf(). 1233 12342009-10-08 Jakub Bogusz <qboosh@pld-linux.org> 1235 1236 Add pretty printing of sembuf argument to semop() and semtimedop() 1237 * ipc.c (semop_flags): New xlat structure. 1238 (sys_semop, sys_semtimedop): Add pretty printing of sembuf argument. 1239 12402009-10-08 Mike Frysinger <vapier@gentoo.org> 1241 1242 Add support for Linux/no-mmu with vfork 1243 * configure.ac (AC_CHECK_FUNCS): Add fork. 1244 * strace.c (strace_vforked): Define. 1245 (startup_child): Do not raise SIGSTOP if vforked. 1246 (trace): Skip first exec when starting up after vforked. 1247 * syscall.c [BFIN] (get_scno): Drop waitexec checks. 1248 1249 Avoid malloc(0) in getdents parsers 1250 On end of directory, getdents returns 0. This return value is used to 1251 then try and do malloc(0), but on some systems this will always return 1252 NULL. Since the code won't read the pointer in question if len is 0, 1253 then don't bother calling malloc(0) and set the pointer to NULL ourself. 1254 * file.c (sys_getdents, sys_getdents64): Avoid malloc(0) call. 1255 12562009-10-07 Mike Frysinger <vapier@gentoo.org> 1257 1258 Add sys_nanosleep() prototype for sparc 1259 * linux/sparc/syscall.h (sys_nanosleep): New prototype. 1260 Reported by Frederik Schüler. 1261 1262 Silence compiler warnings about implicit cast from pointer to integer 1263 * util.c (do_ptrace): Cast ptrace() 4th arg to long. 1264 (ptrace_restart): Drop void* cast on ptrace() 4th arg. 1265 1266 Ignore .gdb files from FLAT toolchains 1267 * .gitignore: Add /*.gdb. 1268 1269 * configure.ac (AC_CHECK_FUNCS): Sort and expand. 1270 1271 Blackfin: Update ioctl/syscall lists 1272 * linux/bfin/ioctlent.h: Sync list with latest kernel sources. 1273 * linux/bfin/syscallent.h: Likewise. 1274 1275 ioctlsort: Check ppc hosts too 1276 * linux/ioctlsort.c: Check for __powerpc__. 1277 12782009-10-07 Andreas Schwab <schwab@redhat.com> 1279 1280 Fix build on ia64 1281 * linux/ia64/syscallent.h: Update for addition of accept4 syscall 1282 in ../syscallent.h. 1283 12842009-10-07 Roland McGrath <roland@redhat.com> 1285 1286 * strace.spec (%doc): Add ChangeLog-CVS. 1287 1288 * Makefile.am (srpm): New phony target. 1289 1290 * Makefile.am (EXTRA_DIST): Add ChangeLog. 1291 ($(srcdir)/ChangeLog): New target, replaces gen-changelog phony target. 1292 Put it inside [MAINTAINER_MODE]. 1293 12942009-10-06 Dmitry V. Levin <ldv@altlinux.org> 1295 1296 * NEWS: Update for 4.5.19 release. 1297 12982009-10-05 Frederik Schüler <fs@debian.org> 1299 1300 Prepare debian/* files for release 1301 * debian/rules: Do not ship ChangeLog anymore. 1302 * debian/control: Update to Debian standards version 3.8.1, and remove 1303 Roland from the Maintainers list. This closes Debian bug #521458. 1304 * debian/changelog: Document changes and prepare for release. 1305 13062009-10-05 Dmitry V. Levin <ldv@altlinux.org> 1307 1308 * defs.h [HPPA]: Lower MAX_ARGS from 32 to 6. 1309 1310 * ipc.c [LINUX] (sys_shmat): HPPA does not use an IPC multiplexer. 1311 Based on patch from Carlos O'Donell. 1312 13132009-10-05 Carlos O'Donell <carlos@systemhalted.org> 1314 1315 * linux/hppa/syscallent.h: Update syscalls. 1316 Based on work by Kyle McMartin and Helge Deller. 1317 1318 Fix SA_HANDLER function pointer comparisons for hppa 1319 * signal.c (sys_sigaction): Cast SA_HANDLER function pointers to long. 1320 (sys_rt_sigaction): Likewise. 1321 13222009-10-05 Edgar E. Iglesias <edgar.iglesias@gmail.com> 1323 1324 CRIS: Correct first argument to upeek() 1325 This complements commit ea0e6e80260d2b1b7ad40282012b0e47869bcddf. 1326 * syscall.c [CRISV10 || CRISV32] (syscall_fixup, syscall_enter): Pass 1327 tcp pointer instead of pid to upeek(). 1328 * util.c [CRISV10 || CRISV32] (printcall): Likewise. 1329 13302009-10-05 Dmitry V. Levin <ldv@altlinux.org> 1331 1332 * signal.c (do_signalfd): Fix typo in output format. 1333 13342009-09-21 Dmitry V. Levin <ldv@altlinux.org> 1335 1336 * Makefile.am (gen_changelog_start_date): Fix date. 1337 13382009-09-19 Dmitry V. Levin <ldv@altlinux.org> 1339 1340 Prepare for 4.5.19 release 1341 * NEWS: Update for 4.5.19 release. 1342 * configure.ac: Version 4.5.19. 1343 * debian/changelog: 4.5.19-1. 1344 * strace.spec: 4.5.19-1. 1345 1346 Update debian/* to 4.5.18-1 1347 * debian/changelog: Update to 4.5.18-1. 1348 * debian/compat: Set compatibility level to 7. 1349 * debian/control (Build-Depends): Update debhelper requirement. 1350 (strace, strace64): Add Section and Priority tags. 1351 13522009-09-19 Kirill A. Shutemov <kirill@shutemov.name> 1353 1354 Fix fadvise64 decoding on ARM 1355 * file.c (sys_fadvise64_64) [ARM]: Fix argument ordering. 1356 13572009-09-18 Dmitry V. Levin <ldv@altlinux.org> 1358 1359 Fix follow fork/vfork on Linux ARM OABI 1360 __NR_SYSCALL_BASE eis 0 for EABI and is 0x900000 for OABI. 1361 * process (change_syscall) [LINUX && ARM]: Mask off the high order bits 1362 when changing syscall. 1363 1364 Reviewed-by: Kirill A. Shutemov <kirill@shutemov.name> 1365 13662009-09-18 Mike Frysinger <vapier@gentoo.org> 1367 1368 Mark shell scripts as executable 1369 1370 Ignore ioctlsort helper program 1371 * .gitignore: Add ioctlsort. 1372 1373 linux/errno: Add ERFKILL 1374 * linux/errnoent.h: Change ERRNO_132 to ERFKILL according to errno 132 1375 definition introduced in Linux 2.6.31. 1376 13772009-09-01 Paolo Bonzini <pbonzini@redhat.com> 1378 1379 Add accept4 socketcall 1380 This second patch in the series adds support for accept4 as a socketcall 1381 sub-call. Besides the need to renumber all system calls, this poses 1382 no problem. 1383 Tested on i686. 1384 1385 * linux/arm/syscallent.h: Add accept4 socketcall. 1386 * linux/m68k/syscallent.h: Likewise. 1387 * linux/powerpc/syscallent.h: Likewise. 1388 * linux/s390/syscallent.h: Likewise. 1389 * linux/s390x/syscallent.h: Likewise. 1390 * linux/sh/syscallent.h: Likewise. 1391 * linux/sh64/syscallent.h: Likewise. 1392 * linux/sparc/syscallent.h: Likewise. 1393 * linux/syscallent.h: Likewise. 1394 1395 * linux/sparc/syscall.h (SYS_sub_accept4): Declare. 1396 (SYS_socket_nsubcalls): Update. 1397 * linux/syscall.h: Likewise. 1398 1399 Replace x86-64 paccept with accept4 1400 This patch changes the paccept syscall to accept4 for x86-64, since 1401 the former was dropped in Linux kernel commit v2.6.27-rc7-14-g2d4c826. 1402 At the same time, it adds support for pretty printing its arguments. 1403 1404 * linux/x86_64/syscallent.h: Replace paccept with accept4, 1405 hook in sys_accept4. 1406 * net.c (sys_accept): Leave a small stub calling the new... 1407 (do_accept): ... function, which also adds a flags_arg argument. 1408 (sys_accept4): New. 1409 14102009-08-28 Andreas Schwab <schwab@redhat.com> 1411 1412 Zero-extend 32-bit addresses when printing argv array. 1413 (printargv): Zero-extend 32-bit addresses. 1414 Fixes RH#519480 "64-bit strace is lazy on execve of 32-bit 1415 process". 1416 14172009-08-12 Andreas Schwab <schwab@redhat.com> 1418 1419 Add more futex decoding. 1420 * process.c (FUTEX_WAIT_REQUEUE_PI, FUTEX_CMP_REQUEUE_PI) 1421 (FUTEX_PRIVATE_FLAG, FUTEX_CLOCK_REALTIME): Define. 1422 (futexops): Add entries for them. 1423 (sys_futex): Decode FUTEX_CMP_REQUEUE_PI and 1424 FUTEX_WAIT_REQUEUE_PI. 1425 14262009-07-08 Dmitry V. Levin <ldv@altlinux.org> 1427 1428 Generate ChangeLog from git log 1429 * .gitignore: Add ChangeLog 1430 * ChangeLog: Rename to ChangeLog-CVS. 1431 * Makefile.am (gen-changelog): New rule. 1432 (dist-hook): Depend on it. 1433 (EXTRA_DIST): Add ChangeLog-CVS. 1434 * README-hacking: Describe changes. 1435 * gitlog-to-changelog: Import from gnulib. 1436 1437 1438See ChangeLog-CVS for older changes. 1439