OLD | NEW |
1 // Copyright 2014 The Crashpad Authors. All rights reserved. | 1 // Copyright 2014 The Crashpad Authors. All rights reserved. |
2 // | 2 // |
3 // Licensed under the Apache License, Version 2.0 (the "License"); | 3 // Licensed under the Apache License, Version 2.0 (the "License"); |
4 // you may not use this file except in compliance with the License. | 4 // you may not use this file except in compliance with the License. |
5 // You may obtain a copy of the License at | 5 // You may obtain a copy of the License at |
6 // | 6 // |
7 // http://www.apache.org/licenses/LICENSE-2.0 | 7 // http://www.apache.org/licenses/LICENSE-2.0 |
8 // | 8 // |
9 // Unless required by applicable law or agreed to in writing, software | 9 // Unless required by applicable law or agreed to in writing, software |
10 // distributed under the License is distributed on an "AS IS" BASIS, | 10 // distributed under the License is distributed on an "AS IS" BASIS, |
(...skipping 24 matching lines...) Expand all Loading... |
35 | 35 |
36 On OS X, this server is normally started by its initial client, and it performs | 36 On OS X, this server is normally started by its initial client, and it performs |
37 a handshake with this client via a pipe established by the client that is | 37 a handshake with this client via a pipe established by the client that is |
38 inherited by the server, referenced by the *--handshake-fd* argument. During the | 38 inherited by the server, referenced by the *--handshake-fd* argument. During the |
39 handshake, the server furnishes the client with a send right that the client may | 39 handshake, the server furnishes the client with a send right that the client may |
40 use as an exception port. The server retains the corresponding receive right, | 40 use as an exception port. The server retains the corresponding receive right, |
41 which it monitors for exception messages. When the receive right loses all | 41 which it monitors for exception messages. When the receive right loses all |
42 senders, the server exits after allowing any upload in progress to complete. | 42 senders, the server exits after allowing any upload in progress to complete. |
43 | 43 |
44 On Windows, clients register with this server by communicating with it via the | 44 On Windows, clients register with this server by communicating with it via the |
45 named pipe identified by the *--pipe-name* argument. During registration, a | 45 named pipe identified by the *--pipe-name* argument. Alternatively, the server |
46 client provides the server with an OS event object that it will signal should it | 46 can create a new pipe with a random name and inform a client of this name via |
47 crash. The server obtains the client’s process handle and waits on the crash | 47 the *--handshake-handle* mechanism; clients may then register by communicating |
48 event object for a crash, as well as the client’s process handle for the client | 48 with it via that named pipe. During registration, a client provides the server |
49 to exit cleanly without crashing. When the server loses all clients and | 49 with an OS event object that it will signal should it crash. The server obtains |
50 *--persistent* is not specified, it exits after allowing any upload in progress | 50 the client’s process handle and waits on the crash event object for a crash, as |
51 to complete. | 51 well as the client’s process handle for the client to exit cleanly without |
| 52 crashing. When a server started via the *--handshake-handle* mechanism loses all |
| 53 of its clients, it exits after allowing any upload in progress to complete. |
52 | 54 |
53 It is not normally appropriate to invoke this program directly. Usually, it will | 55 It is not normally appropriate to invoke this program directly. Usually, it will |
54 be invoked by a Crashpad client using the Crashpad client library. Arbitrary | 56 be invoked by a Crashpad client using the Crashpad client library. Arbitrary |
55 programs may be run with a Crashpad handler by using | 57 programs may be run with a Crashpad handler by using |
56 man_link:run_with_crashpad[1] to establish the Crashpad client environment | 58 man_link:run_with_crashpad[1] to establish the Crashpad client environment |
57 before running a program. | 59 before running a program. |
58 | 60 |
59 == Options | 61 == Options |
60 *--annotation*='KEY=VALUE':: | 62 *--annotation*='KEY=VALUE':: |
61 Sets a process-level annotation mapping 'KEY' to 'VALUE' in each crash report | 63 Sets a process-level annotation mapping 'KEY' to 'VALUE' in each crash report |
(...skipping 17 matching lines...) Expand all Loading... |
79 Use 'PATH' as the path to the Crashpad crash report database. This option is | 81 Use 'PATH' as the path to the Crashpad crash report database. This option is |
80 required. Crash reports are written to this database, and if uploads are | 82 required. Crash reports are written to this database, and if uploads are |
81 enabled, uploaded from this database to a crash report collection server. If the | 83 enabled, uploaded from this database to a crash report collection server. If the |
82 database does not exist, it will be created, provided that the parent directory | 84 database does not exist, it will be created, provided that the parent directory |
83 of 'PATH' exists. | 85 of 'PATH' exists. |
84 | 86 |
85 *--handshake-fd*='FD':: | 87 *--handshake-fd*='FD':: |
86 Perform the handshake with the initial client on the file descriptor at 'FD'. | 88 Perform the handshake with the initial client on the file descriptor at 'FD'. |
87 This option is required. This option is only valid on Mac OS X. | 89 This option is required. This option is only valid on Mac OS X. |
88 | 90 |
89 *--persistent*:: | 91 *--handshake-handle*='HANDLE':: |
90 Continue running after the last client exits. If this option is not specified, | 92 Perform the handshake with the initial client on the HANDLE at 'HANDLE'. Either |
91 this server will exit as soon as it has no clients, although on startup, it | 93 this option or *--pipe-name*, but not both, is required. This option is only |
92 always waits for at least one client to connect. This option is only valid on | 94 valid on Windows. |
93 Windows. | 95 + |
| 96 When this option is present, the server creates a new named pipe at a random |
| 97 name and informs its client of the name. The server waits for at least one |
| 98 client to register, and exits when all clients have exited, after waiting for |
| 99 any uploads in progress to complete. |
94 | 100 |
95 *--pipe-name*='PIPE':: | 101 *--pipe-name*='PIPE':: |
96 Listen on the given pipe name for connections from clients. 'PIPE' must be of | 102 Listen on the given pipe name for connections from clients. 'PIPE' must be of |
97 the form +\\.\pipe\<somename>+. This option is required. This option is only | 103 the form +\\.\pipe\<somename>+. Either this option or *--handshake-handle*, but |
98 valid on Windows. | 104 not both, is required. This option is only valid on Windows. |
| 105 + |
| 106 When this option is present, the server creates a named pipe at 'PIPE', a name |
| 107 known to both the server and its clients. The server continues running even |
| 108 after all clients have exited. |
99 | 109 |
100 *--reset-own-crash-exception-port-to-system-default*:: | 110 *--reset-own-crash-exception-port-to-system-default*:: |
101 Causes the exception handler server to set its own crash handler to the system | 111 Causes the exception handler server to set its own crash handler to the system |
102 default before beginning operation. This is only expected to be useful in cases | 112 default before beginning operation. This is only expected to be useful in cases |
103 where the server inherits an inappropriate crash handler from its parent | 113 where the server inherits an inappropriate crash handler from its parent |
104 process. This option is only valid on OS X. Use of this option is discouraged. | 114 process. This option is only valid on OS X. Use of this option is discouraged. |
105 It should not be used absent extraordinary circumstances. | 115 It should not be used absent extraordinary circumstances. |
106 | 116 |
107 *--url*='URL':: | 117 *--url*='URL':: |
108 If uploads are enabled, sends crash reports to the Breakpad-type crash report | 118 If uploads are enabled, sends crash reports to the Breakpad-type crash report |
(...skipping 17 matching lines...) Expand all Loading... |
126 Failure, with a message printed to the standard error stream. | 136 Failure, with a message printed to the standard error stream. |
127 | 137 |
128 == See Also | 138 == See Also |
129 | 139 |
130 man_link:catch_exception_tool[1], | 140 man_link:catch_exception_tool[1], |
131 man_link:crashpad_database_util[1], | 141 man_link:crashpad_database_util[1], |
132 man_link:generate_dump[1], | 142 man_link:generate_dump[1], |
133 man_link:run_with_crashpad[1] | 143 man_link:run_with_crashpad[1] |
134 | 144 |
135 include::../doc/support/man_footer.ad[] | 145 include::../doc/support/man_footer.ad[] |
OLD | NEW |