christos
4bfe82cbac
Flip the order of two lines I mixed. Thanks to wiz for noticing.
2005-01-09 20:25:26 +00:00
christos
82ee9647b8
Allow PT_DUMPCORE to specify the core filename.
2005-01-09 19:22:55 +00:00
skrll
f7155e40f6
There's no need to pass a proc value when using UIO_SYSSPACE with
...
vn_rdwr(9) and uiomove(9).
OK'd by Jason Thorpe
2004-09-17 14:11:20 +00:00
christos
0fe4a0b07a
Don't check for negative offset in the memory case. 64 bit addresses can
...
have the high bit set, and thus be interpreted as negative offsets. This
is not a problem because uvm_io() does all the range checks.
2004-06-22 02:06:55 +00:00
christos
19c4641ff8
(off_t)(long) is wrong when it comes to kernel addresses [because on a 32 bit
...
machine if the high bit is set they turn negative]. Make an intermediate cast
to unsigned long.
2004-05-26 16:28:05 +00:00
christos
d3f7c2a23c
Check for bad offsets at the beginning of the functions to save processing.
...
Idea from OpenBSD.
2004-05-14 16:36:33 +00:00
pk
b2260877bf
proc_reparent() must be called with proclist write lock held. Make it so.
2004-05-04 21:58:47 +00:00
pk
2fb3dac280
Since a vmspace' always includes a
vm_map' we can re-use vm_map's
...
reference count lock to also protect the vmspace's reference count.
2004-05-04 21:33:40 +00:00
matt
879040549d
Only do the pmap_procwr if the uvm_io succeeded.
2004-03-13 18:43:18 +00:00
dsl
2ffbd2ab99
Remove p_nras from struct proc - use LIST_EMPTY(&p->p_raslist) instead.
...
Remove p_raslock and rename p_lwplock p_lock (one lock is enough).
Simplify window test when adding a ras and correct test on VM_MAXUSER_ADDRESS.
Avoid unpredictable branch in i386 locore.S
(pad fields left in struct proc to avoid kernel bump)
2003-11-04 10:33:15 +00:00
agc
aad01611e7
Move UCB-licensed code from 4-clause to 3-clause licence.
...
Patches provided by Joel Baker in PR 22364, verified by myself.
2003-08-07 16:26:28 +00:00
fvdl
d5aece61d6
Back out the lwp/ktrace changes. They contained a lot of colateral damage,
...
and need to be examined and discussed more.
2003-06-29 22:28:00 +00:00
darrenr
960df3c8d1
Pass lwp pointers throughtout the kernel, as required, so that the lwpid can
...
be inserted into ktrace records. The general change has been to replace
"struct proc *" with "struct lwp *" in various function prototypes, pass
the lwp through and use l_proc to get the process pointer when needed.
Bump the kernel rev up to 1.6V
2003-06-28 14:20:43 +00:00
nathanw
c7ca70e27a
Add a ptrace interface for iterating over and collecting information
...
about LWPs. Loosely inspired by a similar interface in HP-UX ttrace(2).
2003-05-20 18:16:08 +00:00
nathanw
b5a9638ee1
Adapt to the new conventions of proc_unstop() and don't try to call
...
setrunnable(NULL).
2003-02-07 21:44:45 +00:00
christos
3ea86aec06
PT_DUMPCORE support.
2003-01-23 17:35:18 +00:00
thorpej
e0d8d366df
Merge the nathanw_sa branch.
2003-01-18 10:06:22 +00:00
gmcgarry
366dfb04d7
Attempt to protect restartable atomic sequences of a traced process
...
being written to. Breakpoints aren't good in a RAS. This test isn't
infallible, since we can't protect memory which will be registered
as a RAS in the future.
Also, set the PC before attempting to single-step, so we can backout
from single-stepping. Just in case we try to single-step into a RAS.
2002-08-28 07:27:14 +00:00
thorpej
fde1164ef5
Fix some signed/unsigned comparison warnings from GCC 3.3.
2002-08-25 23:23:22 +00:00
jdolecek
02eb342b57
Make sure that the pointer to old parent process for ptraced children
...
gets reset properly when the old parent exits before the child. A flag
is set in old parent process when the child is reparented in ptrace(2).
If it's set when process is exiting, all running processes have their
'old parent process' pointer checked and reset if appropriate. Also
change to use 'struct proc *' pointer directly, rather than pid_t.
This fixes security/14444 by David Sainty.
Reviewed by Christos Zoulas.
2002-07-25 20:04:02 +00:00
thorpej
f1f51aa2b8
Move code shared by procfs and the kernel proper out of procfs and
...
into the kernel proper (renaming functions from procfs_* to process_*).
2002-05-09 15:44:44 +00:00
thorpej
53df727d27
Add a new ptrace request, PT_IO, as proposed by Artur Grabowski
...
on the <bsd-api-discuss@wasabisystems.com> mailing list. PT_IO
is a more general inferior I/D space I/O mechanism. FreeBSD and
OpenBSD have also added PT_IO.
From lha@stacken.kth.se , kern/15945.
2002-03-17 17:02:45 +00:00
christos
d4e7e4c9c4
Fix a ptrace/execve race that could be used to modify the child process's
...
image during execve. This is a security issue because one can
do that to setuid programs... From FreeBSD.
2002-01-11 21:16:27 +00:00
thorpej
03efee5585
* Allow machine-dependent code to specify hooks for ptrace(2)
...
(__HAVE_PTRACE_MACHDEP) and procfs (__HAVE_PROCFS_MACHDEP).
These changes will allow platforms like x86 (XMM) and PowerPC
(AltiVec) to export extended register sets in a sane manner.
* Use __HAVE_PTRACE_MACHDEP to export x86 XMM registers (standard
FP + SSE/SSE2) using PT_{GET,SET}XMMREGS (in the machdep
ptrace request space).
* Use __HAVE_PROCFS_MACHDEP to export x86 XMM registers via
/proc/N/xmmregs in procfs.
2001-12-05 00:58:05 +00:00
lukem
adc783d537
add RCSIDs
2001-11-12 15:25:01 +00:00
wiz
a9356936b4
seperate -> separate
2001-07-22 13:33:58 +00:00
nathanw
9e8fb68348
The trace_req() function is a no-op; garbage collect it.
2001-06-13 16:06:27 +00:00
pooka
6c3e28927e
fix typo in comment
2001-03-17 09:38:36 +00:00
fvdl
ea08a209b5
Adapt for procfs_valid* argument change.
2001-01-17 01:13:23 +00:00
erh
3392996d23
Prevent ptrace on system processes. Avoids panic when attempting to ptrace pid 0, which has no parent.
2000-09-24 07:31:28 +00:00
thorpej
a86d1f4891
Add a lock around the scheduler, and use it as necessary, including
...
in the non-MULTIPROCESSOR case (LOCKDEBUG requires it). Scheduler
lock is held upon entry to mi_switch() and cpu_switch(), and
cpu_switch() releases the lock before returning.
Largely from Bill Sommerfeld, with some minor bug fixes and
machine-dependent code hacking from me.
2000-08-20 21:50:06 +00:00
eeh
2152b574c0
Fix LP64BE bug.
2000-07-28 04:21:26 +00:00
mrg
32aa199ccf
remove include of <vm/vm.h>
2000-06-27 17:41:07 +00:00
sommerfe
ef07055d58
Disallow tracing of processes unless tracer's root directory is at or
...
above tracee's root directory.
1999-03-25 04:45:56 +00:00
mrg
d2397ac5f7
completely remove Mach VM support. all that is left is the all the
...
header files as UVM still uses (most of) these.
1999-03-24 05:50:49 +00:00
mrg
d90485202c
- add defopt's for UVM, UVMHIST and PMAP_NEW.
...
- remove unnecessary UVMHIST_DECL's.
1998-02-10 14:08:44 +00:00
mrg
1a8c7604f4
initial import of the new virtual memory system, UVM, into -current.
...
UVM was written by chuck cranor <chuck@maria.wustl.edu>, with some
minor portions derived from the old Mach code. i provided some help
getting swap and paging working, and other bug fixes/ideas. chuck
silvers <chuq@chuq.com> also provided some other fixes.
this is the rest of the MI portion changes.
this will be KNF'd shortly. :-)
1998-02-05 07:59:28 +00:00
mycroft
701f15db33
Reinstate P_FSTRACE, with different semantics:
...
* Never send a SIGCHLD to the parent if P_FSTRACE is set.
* Do not permit mixing ptrace(2) and procfs; only permit using the one that
was attached.
1997-04-28 04:49:27 +00:00
mycroft
e725c03060
When checking for init, compare against initproc, rather than comparing the
...
PID. No functional difference.
1997-04-28 02:29:52 +00:00
tls
3052b5a949
fix obscure problem involving ptrace of init
1996-05-15 06:17:47 +00:00
christos
09afd77655
More proto fixes
1996-02-09 18:59:18 +00:00
christos
8a5b1b92e2
First pass at prototyping
1996-02-04 02:15:01 +00:00
mycroft
245f292fed
Prefix names of system call implementation functions with `sys_'.
1995-10-07 06:25:19 +00:00
thorpej
60024eb978
Make system calls conform to a standard prototype and bring those
...
prototypes into scope.
1995-09-19 21:40:36 +00:00
mycroft
36a94a031a
Lock the process in core before operating on it.
1995-08-13 09:05:51 +00:00
mycroft
d7e904a697
Fix various signal handling bugs:
...
* If we got a stopping signal while already stopped with the same signal,
the second signal would sometimes (but not always) be ignored.
* Signals delivered by the debugger always pretended to be stopping
signals.
* PT_ATTACH still didn't quite work right.
1995-06-08 23:51:01 +00:00
mycroft
4a975bbe6f
If necessary, wake up the child during attach so we always get a SIGCHLD.
1995-06-05 20:57:54 +00:00
mycroft
53f792b77d
Omit the call to process_sstep() if PT_STEP is not defined.
1995-02-09 05:19:18 +00:00
cgd
a03b011499
undo a part of the last change that mistakenly required PT_STEP.
...
(i simply undid that part of the change.) also, fix a tyop.
1995-02-08 23:38:29 +00:00
mycroft
1815d82b85
Make attach/detach more safe.
1995-02-03 11:35:57 +00:00
mycroft
42d23cb6e4
Remove PT_{READ,WRITE}_U.
1995-01-26 17:56:21 +00:00
cgd
6ac2bbfc35
be more careful with types, also pull in headers where necessary.
1994-10-30 21:43:03 +00:00
cgd
6b86130410
update for new syscall args description mechanism
1994-10-20 04:22:35 +00:00
mycroft
3cc6cbc0e6
Correct test for already being traced.
1994-09-24 07:17:18 +00:00
cgd
b690c315ff
ugly (#ifdef) hack to fix m68k alignment differences, etc. Eventually,
...
should be done with a 'natual alignment' macro, or some such.
1994-09-14 16:40:29 +00:00
deraadt
280592c6a7
replace "ctob(UPAGES)" and "UPAGES * NBPG" with "USPACE"
...
(cvs dumped core during previous commit...)
1994-08-23 22:13:59 +00:00
cgd
94109335b3
kill errant spaces
1994-08-21 21:24:33 +00:00
mycroft
77fe78350b
Minor update to a comment.
1994-08-15 16:45:14 +00:00
cgd
97bdeab31e
replace with a completely rewritten version, based around the 4.4BSD
...
procfs. Now the author of the old version will stop complaining that
we're using his code.
1994-08-15 16:32:41 +00:00
cgd
b48d84b629
replce with virgin copy from 4.4-Lite
1994-08-15 16:29:22 +00:00
ws
2db64ab48d
Try to pick myself up from the floor where I fell laughing.
1994-07-12 22:20:46 +00:00
cgd
cf92afd66e
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
1994-06-29 06:29:24 +00:00
cgd
fcb7a3c514
Implement ptrace() functionality, based on the previous version
...
by Sean Eric Fagan.
1994-05-18 11:37:00 +00:00
cgd
e5456f6c3e
replace sys_process.c with the 4.4-Lite version
1994-05-18 11:32:27 +00:00
cgd
ed848af6f7
function name changes
1994-05-07 00:51:06 +00:00
cgd
a0a7429482
lots of changes: prototype migration, move lots of variables, definitions,
...
and structure elements around. kill some unnecessary type and macro
definitions. standardize clock handling. More changes than you'd want.
1994-05-05 05:35:42 +00:00
cgd
4bbabd8e7a
Rename a lot of process flags.
1994-05-04 03:41:12 +00:00
cgd
675a199909
SUGID semantics, similar to 4.4BSD
1994-04-07 00:40:14 +00:00
pk
b2d32f38eb
A zero scale factor turns profiling off.
1994-03-11 09:12:22 +00:00
pk
a2e2253e6c
Remove out-dated comments
1994-02-03 16:17:25 +00:00
cgd
55d2821ec0
make sure PT_STEP's are in #ifdefs
1994-01-28 19:06:17 +00:00
cgd
1b2497a000
if you define PT_[GS]ETFPREGS, then you'd better define struct fpreg, etc.
1994-01-28 06:51:13 +00:00
ws
2cee3e073f
Make procfs really work for debugging.
...
Implement not & notepg files in procfs.
1994-01-20 21:22:47 +00:00
mycroft
a537084311
Cleanup.
1994-01-10 06:10:30 +00:00
mycroft
27a2653bc6
*Really* fix the wakeup code this time.
1994-01-10 05:58:37 +00:00
mycroft
b58ba6927f
Wake up the blasted process when we detach!
1994-01-10 04:20:29 +00:00
cgd
3fbd67b7d3
implement PT_ATTACH and PT_DETACH.
1994-01-09 23:57:15 +00:00
cgd
b0bc24471f
PT_STEP is actually machine dependent. not all machines have it!
1994-01-09 16:52:11 +00:00
cgd
47529628bb
core reorg
1994-01-08 11:18:56 +00:00
mycroft
7f50bd1829
Canonicalize all #includes.
1993-12-18 04:21:37 +00:00
cgd
5419d0bd49
initialize uninitialized variable, from Andy Heffernan <ahh@netcom.com>.
1993-12-01 22:05:04 +00:00
mycroft
526dbecdb2
A little more cleanup; 0 --> FALSE and 1 --> TRUE.
1993-09-06 02:06:34 +00:00
mycroft
cc054a83e7
De-ANSIfy and re-KNFify.
1993-09-06 02:03:03 +00:00
sef
b477be52eb
Yet more of the ptrace() reorg; now ptrace_setregs() and ptrace_getregs()
...
are present, along with PT_GETREGS and PT_SETREGS ptrace commands.
1993-09-05 03:53:52 +00:00
sef
fddf2c7605
ptrace_single_step() and ptrace_set_pc() should return errors if
...
necessary. (Mainly because the SPARC can't easily single step, so
it should return EINVAL, and then ptrace() should return that to the
user.)
1993-09-04 08:46:36 +00:00
cgd
3aa99f85dc
better ptrace() support from Sean Eric Fagan <sef@kithrup.com>
1993-09-04 05:32:18 +00:00
cgd
c0334ef92c
break args structs out, into syscallname_args structs, so gcc2 doesn't
...
whine so much.
1993-07-13 22:13:15 +00:00
cgd
955ae6a915
change exit() to kexit(), so prototypes are "safe" with stdio.h, etc.
1993-07-04 23:30:33 +00:00
andrew
0e6cb953ea
ANSIfications - removed all implicit function return types and argument
...
definitions. Ensured that all files include "systm.h" to gain access to
general prototypes. Casts where necessary.
1993-06-27 06:01:27 +00:00
cgd
44dcf397e8
move sipcreg into i386/include/reg.h where it belongs, right next to ipcreg.
1993-05-24 11:37:12 +00:00
cgd
230dcf0d05
add $Id$ strings, and clean up file headers where necessary
1993-05-20 02:54:09 +00:00
cgd
e27c0ba7bc
update for bde's useracc changes. from patchkit patch 137.
1993-05-07 07:06:42 +00:00
cgd
e541169ce2
after 0.2.2 "stable" patches applied
1993-03-21 18:04:42 +00:00
cgd
61f282557f
initial import of 386bsd-0.1 sources
1993-03-21 09:45:37 +00:00