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 15 matching lines...) Expand all Loading... |
26 *crashpad_handler* ['OPTION…'] | 26 *crashpad_handler* ['OPTION…'] |
27 | 27 |
28 == Description | 28 == Description |
29 | 29 |
30 This program is Crashpad’s main exception-handling server. It is responsible for | 30 This program is Crashpad’s main exception-handling server. It is responsible for |
31 catching exceptions, writing crash reports, and uploading them to a crash report | 31 catching exceptions, writing crash reports, and uploading them to a crash report |
32 collection server. Uploads are disabled by default, and can only be enabled by a | 32 collection server. Uploads are disabled by default, and can only be enabled by a |
33 Crashpad client using the Crashpad client library, typically in response to a | 33 Crashpad client using the Crashpad client library, typically in response to a |
34 user requesting this behavior. | 34 user requesting this behavior. |
35 | 35 |
36 This server is normally started by its initial client, and it performs a | 36 On OS X, this server is normally started by its initial client, and it performs |
37 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 |
| 45 named pipe identified by the *--pipe-name* argument. During registration, a |
| 46 client provides the server with an OS event object that it will signal should it |
| 47 crash. The server obtains the client’s process handle and waits on the crash |
| 48 event object for a crash, as well as the client’s process handle for the client |
| 49 to exit cleanly without crashing. When the server loses all clients and |
| 50 *--persistent* is not specified, it exits after allowing any upload in progress |
| 51 to complete. |
| 52 |
44 It is not normally appropriate to invoke this program directly. Usually, it will | 53 It is not normally appropriate to invoke this program directly. Usually, it will |
45 be invoked by a Crashpad client using the Crashpad client library. Arbitrary | 54 be invoked by a Crashpad client using the Crashpad client library. Arbitrary |
46 programs may be run with a Crashpad handler by using | 55 programs may be run with a Crashpad handler by using |
47 man_link:run_with_crashpad[1] to establish the Crashpad client environment | 56 man_link:run_with_crashpad[1] to establish the Crashpad client environment |
48 before running a program. | 57 before running a program. |
49 | 58 |
50 == Options | 59 == Options |
51 *--annotation*='KEY=VALUE':: | 60 *--annotation*='KEY=VALUE':: |
52 Sets a process-level annotation mapping 'KEY' to 'VALUE' in each crash report | 61 Sets a process-level annotation mapping 'KEY' to 'VALUE' in each crash report |
53 that is written. This option may appear zero, one, or multiple times. | 62 that is written. This option may appear zero, one, or multiple times. |
(...skipping 16 matching lines...) Expand all Loading... |
70 Use 'PATH' as the path to the Crashpad crash report database. This option is | 79 Use 'PATH' as the path to the Crashpad crash report database. This option is |
71 required. Crash reports are written to this database, and if uploads are | 80 required. Crash reports are written to this database, and if uploads are |
72 enabled, uploaded from this database to a crash report collection server. If the | 81 enabled, uploaded from this database to a crash report collection server. If the |
73 database does not exist, it will be created, provided that the parent directory | 82 database does not exist, it will be created, provided that the parent directory |
74 of 'PATH' exists. | 83 of 'PATH' exists. |
75 | 84 |
76 *--handshake-fd*='FD':: | 85 *--handshake-fd*='FD':: |
77 Perform the handshake with the initial client on the file descriptor at 'FD'. | 86 Perform the handshake with the initial client on the file descriptor at 'FD'. |
78 This option is required. This option is only valid on Mac OS X. | 87 This option is required. This option is only valid on Mac OS X. |
79 | 88 |
| 89 *--persistent*:: |
| 90 Continue running after the last client exits. If this option is not specified, |
| 91 this server will exit as soon as it has no clients, although on startup, it |
| 92 always waits for at least one client to connect. This option is only valid on |
| 93 Windows. |
| 94 |
80 *--pipe-name*='PIPE':: | 95 *--pipe-name*='PIPE':: |
81 Listen on the given pipe name for connections from clients. 'PIPE' must be of | 96 Listen on the given pipe name for connections from clients. 'PIPE' must be of |
82 the form +\\.\pipe\<somename>+. This option is required. This option is only | 97 the form +\\.\pipe\<somename>+. This option is required. This option is only |
83 valid on Windows. | 98 valid on Windows. |
84 | 99 |
85 *--reset-own-crash-exception-port-to-system-default*:: | 100 *--reset-own-crash-exception-port-to-system-default*:: |
86 Causes the exception handler server to set its own crash handler to the system | 101 Causes the exception handler server to set its own crash handler to the system |
87 default before beginning operation. This is only expected to be useful in cases | 102 default before beginning operation. This is only expected to be useful in cases |
88 where the server inherits an inappropriate crash handler from its parent | 103 where the server inherits an inappropriate crash handler from its parent |
89 process. This option is only valid on OS X. Use of this option is discouraged. | 104 process. This option is only valid on OS X. Use of this option is discouraged. |
(...skipping 21 matching lines...) Expand all Loading... |
111 Failure, with a message printed to the standard error stream. | 126 Failure, with a message printed to the standard error stream. |
112 | 127 |
113 == See Also | 128 == See Also |
114 | 129 |
115 man_link:catch_exception_tool[1], | 130 man_link:catch_exception_tool[1], |
116 man_link:crashpad_database_util[1], | 131 man_link:crashpad_database_util[1], |
117 man_link:generate_dump[1], | 132 man_link:generate_dump[1], |
118 man_link:run_with_crashpad[1] | 133 man_link:run_with_crashpad[1] |
119 | 134 |
120 include::../doc/support/man_footer.ad[] | 135 include::../doc/support/man_footer.ad[] |
OLD | NEW |