| 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, |
| 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 12 // See the License for the specific language governing permissions and | 12 // See the License for the specific language governing permissions and |
| 13 // limitations under the License. | 13 // limitations under the License. |
| 14 | 14 |
| 15 :doctype: manpage | 15 :doctype: manpage |
| 16 | 16 |
| 17 = crashpad_handler(8) | 17 = crashpad_handler(8) |
| 18 | 18 |
| 19 == Name | 19 == Name |
| 20 | 20 |
| 21 crashpad_handler - Crashpad’s exception handler server | 21 crashpad_handler - Crashpad’s exception handler server |
| 22 | 22 |
| 23 == Synopsis | 23 == Synopsis |
| 24 | 24 |
| 25 [verse] | 25 [verse] |
| 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. This server is | 30 This program is Crashpad’s main exception-handling server. It is responsible for |
| 31 normally started by its initial client, and it performs a handshake with this | 31 catching exceptions, writing crash reports, and uploading them to a crash report |
| 32 client via a pipe established by the client that is inherited by the server, | 32 collection server. Uploads are disabled by default, and can only be enabled by a |
| 33 referenced by the *--handshake-fd* argument. During the handshake, the server | 33 Crashpad client using the Crashpad client library, typically in response to a |
| 34 furnishes the client with a send right that the client may use as an exception | 34 user requesting this behavior. |
| 35 port. The server retains the corresponding receive right, which it monitors for | 35 |
| 36 exception messages. When the receive right loses all senders, the server exits. | 36 This server is normally started by its initial client, and it performs a |
| 37 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 |
| 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, |
| 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. |
| 37 | 43 |
| 38 It is not normally appropriate to invoke this program directly. Usually, it will | 44 It is not normally appropriate to invoke this program directly. Usually, it will |
| 39 be invoked by a Crashpad client using the Crashpad client library. Arbitrary | 45 be invoked by a Crashpad client using the Crashpad client library. Arbitrary |
| 40 programs may be run with a Crashpad handler by using run_with_crashpad(1) to | 46 programs may be run with a Crashpad handler by using run_with_crashpad(1) to |
| 41 establish the Crashpad client environment before running a program. | 47 establish the Crashpad client environment before running a program. |
| 42 | 48 |
| 43 == Options | 49 == Options |
| 44 *-h*, *--handshake-fd*='FD':: | 50 *--annotation*='KEY=VALUE':: |
| 51 Sets a process-level annotation mapping 'KEY' to 'VALUE' in each crash report |
| 52 that is written. This option may appear zero, one, or multiple times. |
| 53 + |
| 54 Most annotations should be provided by the Crashpad client as module-level |
| 55 annotations instead of process-level annotations. Module-level annotations are |
| 56 more flexible in that they can be modified and cleared during the client |
| 57 program’s lifetime. Module-level annotations can be set via the Crashpad client |
| 58 library. Process-level annotations are useful for annotations that the |
| 59 collection server requires be present, that have fixed values, and for cases |
| 60 where a program that does not use the Crashpad client library is being |
| 61 monitored. |
| 62 + |
| 63 Breakpad-type collection servers only require the +"prod"+ and +"ver"+ |
| 64 annotations, which should be set to the product name or identifier and product |
| 65 version, respectively. It is unusual to specify other annotations as |
| 66 process-level annotations via this argument. |
| 67 |
| 68 *--database*='PATH':: |
| 69 Use 'PATH' as the path to the Crashpad crash report database. This option is |
| 70 required. Crash reports are written to this database, and if uploads are |
| 71 enabled, uploaded from this database to a crash report collection server. If the |
| 72 database does not exist, it will be created, provided that the parent directory |
| 73 of 'PATH' exists. |
| 74 |
| 75 *--handshake-fd*='FD':: |
| 45 Perform the handshake with the initial client on the file descriptor at 'FD'. | 76 Perform the handshake with the initial client on the file descriptor at 'FD'. |
| 77 This option is required. |
| 78 |
| 79 *--url*='URL':: |
| 80 If uploads are enabled, sends crash reports to the Breakpad-type crash report |
| 81 collection server at 'URL'. Uploads are disabled by default, and can only be |
| 82 enabled for a database by a Crashpad client using the Crashpad client library, |
| 83 typically in response to a user requesting this behavior. If this option is not |
| 84 specified, this program will behave as if uploads are disabled. |
| 46 | 85 |
| 47 *--help*:: | 86 *--help*:: |
| 48 Display help and exit. | 87 Display help and exit. |
| 49 | 88 |
| 50 *--version*:: | 89 *--version*:: |
| 51 Output version information and exit. | 90 Output version information and exit. |
| 52 | 91 |
| 53 == Exit Status | 92 == Exit Status |
| 54 | 93 |
| 55 *0*:: | 94 *0*:: |
| 56 Success. | 95 Success. |
| 57 | 96 |
| 58 *1*:: | 97 *1*:: |
| 59 Failure, with a message printed to the standard error stream. | 98 Failure, with a message printed to the standard error stream. |
| 60 | 99 |
| 61 == See Also | 100 == See Also |
| 62 | 101 |
| 63 catch_exception_tool(1), | 102 catch_exception_tool(1), |
| 64 generate_dump(1), | 103 generate_dump(1), |
| 65 run_with_crashpad(1) | 104 run_with_crashpad(1) |
| 66 | 105 |
| 67 include::../../tools/man_footer.ad[] | 106 include::../../tools/man_footer.ad[] |
| OLD | NEW |