8158 Want named threads API
[unleashed.git] / usr / src / man / man3proc / Pfault.3proc
blobcb106a4d19cbac7a4f5e312aeede856c9eb45e90
1 .\"
2 .\" This file and its contents are supplied under the terms of the
3 .\" Common Development and Distribution License ("CDDL"), version 1.0.
4 .\" You may only use this file in accordance with the terms of version
5 .\" 1.0 of the CDDL.
6 .\"
7 .\" A full copy of the text of the CDDL should have accompanied this
8 .\" source.  A copy of the CDDL is also available via the Internet at
9 .\" http://www.illumos.org/license/CDDL.
10 .\"
11 .\"
12 .\" Copyright 2015 Joyent, Inc.
13 .\"
14 .Dd May 11, 2016
15 .Dt PFAULT 3PROC
16 .Os
17 .Sh NAME
18 .Nm Pfault
19 .Nd enable and disable the tracing of faults
20 .Sh LIBRARY
21 .Lb libproc
22 .Sh SYNOPSIS
23 .In libproc.h
24 .Ft "int"
25 .Fo Pfault
26 .Fa "struct ps_prochandle *P"
27 .Fa "int which"
28 .Fa "int stop"
29 .Fc
30 .Sh DESCRIPTION
31 The
32 .Fn Pfault
33 function controls what the process
34 .Fa P
35 should do on faults.
36 .Pp
37 A fault is a hardware event that occurs in the context of a running
38 process and thread.
39 A hardware fault may occur because an illegal instruction was executed,
40 a breakpoint or watchpoint was encountered, or an arithmetic exception occurred,
41 among others.
42 The full list of faults is available in both
43 .Xr proc 4
44 and
45 .In sys/fault.h .
46 .Pp
47 For each hardware fault, a process may be configured to stop the thread
48 that encountered it when it occurs.
49 The value of the
50 .Fa stop
51 parameter controls whether or not the listed fault in
52 .Fa which
53 will cause the thread to trap.
54 A value of 1 indicates the thread should stop; a value of 0 indicates it should
55 not.
56 .Pp
57 The value of
58 .Fa which
59 indicates which hardware fault the change applies to.
60 However, if the value of
61 .Fa which
62 is zero, then it applies to all faults.
63 .Pp
64 The
65 .Fn Pfault
66 function only applies to actively running processes.
67 It does not function on handles that refer to core files, zombie processes, or
68 ELF objects.
69 .Sh RETURN VALUES
70 Upon successful completion, the
71 .Fn Pfault
72 function returns the old disposition of the fault --
73 .Sy 0
74 if it was not set to stop and
75 .Sy 1
76 if it was --
77 and the fault state is updated.
78 Otherwise,
79 .Sy -1
80 is returned,
81 .Dv errno
82 is updated with the error that occurred, and the fault state is not
83 updated.
84 .Sh ERRORS
85 The
86 .Fn Pfault
87 function will fail if:
88 .Bl -tag -width Er
89 .It Er EINVAL
90 The value of
91 .Fa which
92 is invalid, e.g. it is less than zero or greater than the largest defined
93 fault.
94 .It Er ENOENT
95 The handle
96 .Fa P
97 refers to a process that is a zombie, a core file, or a file.
98 .El
99 .Sh INTERFACE STABILITY
100 .Sy Uncommitted
101 .Sh MT-LEVEL
103 .Sy LOCKING
105 .Xr libproc 3LIB .
106 .Sh SEE ALSO
107 .Xr libproc 3LIB ,
108 .Xr proc 4