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 November 27, 2023
15.Dt PERROR_PRINTF 3PROC
16.Os
17.Sh NAME
18.Nm Perror_printf
19.Nd interposable function for additional diagnostics
20.Sh LIBRARY
21.Lb libproc
22.Sh SYNOPSIS
23.In libproc.h
24.Ft void
25.Fo Perror_printf
26.Fa "struct ps_prochandle *P"
27.Fa "const char *format"
28.Fa "..."
29.Fc
30.Sh DESCRIPTION
31The
32.Fn Perror_printf
33function allows for consumers of the
34.Sy libproc
35library to obtain additional diagnostic information during various
36operations.
37Consumers must explicitly
38.Em interpose
39on this symbol and provide their own definition, if desired.
40There is no requirement for such an interposition to be done.
41When called,
42.Fa P
43will be the process handle that the additional diagnostics are being
44generated for and the diagnostics will be provided in a
45.Xr printf 3C
46style.
47.Sh INTERFACE STABILITY
48.Sy Uncommitted
49.Pp
50While the interposing interface is
51.Sy uncommitted ,
52the provided diagnostics are
53.Sy Not-an-Interface
54and may change at any time.
55.Sh LOCKING
56Callers should presume that this function may be called from multiple
57threads and always in a context in which taking locks is fine.
58Callers should not expect to be called from a signal handler.
59.Sh SEE ALSO
60.Xr libproc 3LIB
61