66 Commits

Author SHA1 Message Date
Roland McGrath
e1e584b8fa 2003-06-02 Roland McGrath <roland@redhat.com>
* configure.ac, defs.h, mem.c, process.c, sock.c, syscall.c, util.c:
	Merged in SHmedia port from Stephen Thomas <stephen.thomas@superh.com>.
2003-06-02 19:18:58 +00:00
Roland McGrath
0962345a57 2003-05-22 Roland McGrath <roland@redhat.com>
* 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.
2003-05-23 02:27:13 +00:00
Roland McGrath
984154d246 2003-05-22 Roland McGrath <roland@redhat.com>
* 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.
2003-05-23 01:08:42 +00:00
Roland McGrath
fe5fdb23de 2003-05-22 Roland McGrath <roland@redhat.com>
* process.c [LINUX] [S390 || S390X] (ARG_CTID, ARG_TLS): Fix swapped
	indices.  Reported by Jakub Jelinek <jakub@redhat.com>.
2003-05-23 00:29:05 +00:00
Roland McGrath
a2f3496d74 2003-05-22 Roland McGrath <roland@redhat.com>
* process.c (print_affinitylist): Fix loop condition.
	Reported by Ian Wienand <ianw@gelato.unsw.edu.au>.
2003-05-23 00:14:04 +00:00
Roland McGrath
ac971c2727 2003-02-26 Stuart Menefy <stuart.menefy@st.com>
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,errnoent,ioctlent,signalent}.h: New files
2003-03-31 01:03:33 +00:00
Roland McGrath
6f67a98442 2003-03-18 Roland McGrath <roland@redhat.com>
* process.c [LINUX] (sys_clone): Don't dereference parent_tid argument.
2003-03-21 07:33:15 +00:00
Roland McGrath
361aac5193 2003-03-17 Roland McGrath <roland@redhat.com>
* linux/x86_64/syscallent.h: clone takes 5 args.
	* process.c [LINUX] (sys_clone) [X86_64]: Fix argument order.
2003-03-18 07:43:42 +00:00
Roland McGrath
c03981d0ea 2003-03-14 Roland McGrath <roland@redhat.com>
* linux/ia64/syscallent.h: clone takes 5 arguments.
	* process.c [LINUX && IA64] (ARG_*): Update for 2.5 clone calls.
2003-03-14 10:32:36 +00:00
Roland McGrath
178d3b46cb tweak last change 2003-03-12 10:01:22 +00:00
Roland McGrath
43f2c84d50 tweak last change 2003-03-12 09:58:14 +00:00
Roland McGrath
9677b3a280 2003-03-12 Roland McGrath <roland@redhat.com>
* 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.
2003-03-12 09:54:36 +00:00
Roland McGrath
8dfa04a174 2003-03-04 Ulrich Drepper <drepper@redhat.com>
* process.c [LINUX] (sys_futex): Omit final if op is not FUTEX_WAIT.
2003-03-05 04:07:55 +00:00
Roland McGrath
d245092e7f 2003-02-24 Roland McGrath <roland@redhat.com>
* process.c (sys_getresgid): Fix typos in argument access.
2003-02-24 10:18:07 +00:00
Roland McGrath
9bd6b4234b 2003-02-23 Roland McGrath <roland@redhat.com>
* process.c (sys_getresuid): Fix typos in argument access.
	Reported by Anton Blanchard <anton@samba.org>.
2003-02-24 07:13:51 +00:00
Roland McGrath
f3a0e1bb56 2003-02-19 Roland McGrath <roland@redhat.com>
FreeBSD rfork support changes from Russ Cox <rsc@plan9.bell-labs.com>:
	* syscall.c (internal_syscall): Handle SYS_rfork with internal_fork.
	* process.c (internal_fork) [SYS_rfork]: Bail if RFPROC flag not set.
2003-02-20 02:45:22 +00:00
Roland McGrath
5bd7cf8545 2003-01-23 Roland McGrath <roland@redhat.com>
* process.c: Reorder includes to put sys/reg.h before linux/ptrace.h,
	since they can conflict.
2003-01-24 04:31:18 +00:00
Roland McGrath
b4968becdc 2003-01-20 Roland McGrath <roland@redhat.com>
* 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.
2003-01-20 09:04:33 +00:00
Roland McGrath
eb28535990 2003-01-14 Roland McGrath <roland@redhat.com>
* 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 <anton@samba.org>.
2003-01-14 09:59:00 +00:00
Roland McGrath
bf621d40c5 2003-01-14 Roland McGrath <roland@redhat.com>
* process.c: Use <linux/ptrace.h> regardless of <sys/reg.h>.
	(sys_ptrace): Use printxval.
	(ptrace_cmds): Make PTRACE_GETREGS et al conditional on #ifdef PTRACE_*
	instead of only #ifdef SUNOS4.  Add PTRACE_[GS]ETFPXREGS.
2003-01-14 09:46:21 +00:00
Roland McGrath
43b286f8cb 2003-01-10 Roland McGrath <roland@redhat.com>
* process.c (change_syscall) [POWERPC]: Add missing return.
	* util.c [POWERPC] (arg0_offset): Set to 4*PT_R3, not 4*PT_ORIG_R3.
2003-01-10 11:14:41 +00:00
Roland McGrath
e85bbfe9ab 2003-01-08 Roland McGrath <roland@redhat.com>
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.
2003-01-09 06:53:31 +00:00
Roland McGrath
909875ba26 2002-12-21 Roland McGrath <roland@redhat.com>
* 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.
2002-12-22 03:34:36 +00:00
Roland McGrath
b69f81b8e5 2002-12-21 Roland McGrath <roland@redhat.com>
* 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.
2002-12-21 23:25:18 +00:00
Roland McGrath
ee9d435275 2002-12-17 Roland McGrath <roland@redhat.com>
* 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.
2002-12-18 04:16:10 +00:00
Roland McGrath
7ec1d3584b 2002-12-16 Roland McGrath <roland@redhat.com>
* process.c [LINUX] (wait4_options): Fix __WCLONE value.  Add
	__WNOTHREAD and __WALL.
2002-12-17 04:50:44 +00:00
Roland McGrath
3bb9c3d358 2002-12-15 Roland McGrath <roland@redhat.com>
* process.c (setarg) [POWERPC]: Support it.
2002-12-16 20:40:48 +00:00
Roland McGrath
5a223477e3 2002-12-15 Roland McGrath <roland@redhat.com>
* syscall.c (syscall_enter) [LINUX && POWERPC]: Define PT_ORIG_R3 if
	not defined, since <asm/ptrace.h> defines it only #ifdef __KERNEL__.
	* process.c: Likewise.
	* 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.
2002-12-15 23:58:26 +00:00
Michal Ludvig
10a88d09eb 2002-10-07 Michal Ludvig <mludvig@suse.cz>
Merged s390x port by Heiko Carstens <Heiko.Carstens@de.ibm.com>
        and bugfixes to s390 by D.J. Barrow.
2002-10-07 14:31:00 +00:00
Michal Ludvig
0e035502d2 2002-09-23 Michal Ludvig <mludvig@suse.cz>
Merged x86-64 port by Andi Kleen <ak@suse.de>
	and Michal Ludvig <mludvig@suse.cz>
	* 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 15:41:01 +00:00
John Hughes
c61eb3dce2 handle svr4 procpriv call 2002-05-17 11:37:50 +00:00
Wichert Akkerman
ccef63782c Merge patch from Greg Banks for Linux/SuperH support 2002-05-01 16:39:22 +00:00
John Hughes
5826589d8e Merge SVR4/Linux printsiginfo 2001-10-18 15:13:53 +00:00
Wichert Akkerman
7b3346be42 Import lots of ia64 related changes from David Mosberger 2001-10-09 23:47:38 +00:00
John Hughes
a2278146b0 fix display of ptrace args on FreeBSD 2001-09-28 16:21:30 +00:00
Wichert Akkerman
82b162ee2d seems Linux/IA64 changed register names on us, switch to using new names 2001-08-03 11:51:28 +00:00
John Hughes
4e36a8151b Handle fork1/forkall on uw, handle rfork1,rforkall,rexecve and ssisys on uw non-stop-clusters 2001-04-18 15:11:51 +00:00
Wichert Akkerman
5c4c69bc80 Fix wrong cast in powerpc code 2001-04-12 09:00:47 +00:00
Wichert Akkerman
00a82eed2b several Linux/sparc fixes 2001-03-28 20:29:17 +00:00
Wichert Akkerman
c1652e2095 Add Linux/hppa port, patch from Richard Hirst 2001-03-27 12:17:16 +00:00
Wichert Akkerman
2e4ffe59b5 more FreeBSD updates 2000-09-03 23:57:48 +00:00
Wichert Akkerman
9b0c31d663 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
2000-09-03 21:56:29 +00:00
Wichert Akkerman
bf79f2e16b Add FreeBSD support 2000-09-01 21:03:06 +00:00
Ralf Baechle
e381610a00 Implement setargs for MIPS. 2000-08-01 00:06:06 +00:00
Wichert Akkerman
5ae21ead9f The `too much stuff, just check the ChangeLog' update 2000-05-01 01:53:59 +00:00
Wichert Akkerman
c792698a99 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 <Topi.Miettinen@nic.fi>
+ add support for quotactl, fdatasync, mlock, mlockall, munlockall & acct
+ small fix for RLIMIT_* and RUSAGE_BOTH
+ enhace support for capget and capset
2000-04-10 22:22:31 +00:00
Wichert Akkerman
faf722234d 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
2000-02-19 23:59:03 +00:00
Wichert Akkerman
12f75d1a38 S390 updates 2000-02-14 16:23:40 +00:00
Wichert Akkerman
8b1b40cd8b Merge Trillian patches (Linux ia64) 2000-02-03 21:58:30 +00:00
Pavel Machek
9a9f10b4fc Wrap changing of syscall into nice function.
Warn instead of infinite loop in case of error.
2000-02-01 16:22:52 +00:00