| 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 On OS X, this server is normally started by its initial client, and it performs |   36 On OS X, this server may be started by its initial client, in which case it | 
|   37 a handshake with this client via a pipe established by the client that is |   37 performs a handshake with this client via a pipe established by the client that | 
|   38 inherited by the server, referenced by the *--handshake-fd* argument. During the |   38 is inherited by the server, referenced by the *--handshake-fd* argument. During | 
|   39 handshake, the server furnishes the client with a send right that the client may |   39 the handshake, the server furnishes the client with a send right that the client | 
|   40 use as an exception port. The server retains the corresponding receive right, |   40 may use as an exception port. The server retains the corresponding receive | 
|   41 which it monitors for exception messages. When the receive right loses all |   41 right, which it monitors for exception messages. When the receive right loses | 
|   42 senders, the server exits after allowing any upload in progress to complete. |   42 all senders, the server exits after allowing any upload in progress to complete. | 
 |   43  | 
 |   44 Alternatively, on OS X, this server may be started from launchd(8), where it | 
 |   45 receives the Mach service name in a *--mach-service* argument. It checks in with | 
 |   46 the bootstrap server under this service name, and clients may look it up with | 
 |   47 the bootstrap server under this service name. It monitors this service for | 
 |   48 exception messages. Upon receipt of +SIGTERM+, the server exits after allowing | 
 |   49 any upload in progress to complete. +SIGTERM+ is normally sent by launchd(8) | 
 |   50 when it determines that the server should exit. | 
|   43  |   51  | 
|   44 On Windows, clients register with this server by communicating with it via the |   52 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 |   53 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 |   54 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 |   55 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 |   56 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 |   57 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 |   58 *--persistent* is not specified, it exits after allowing any upload in progress | 
|   51 to complete. |   59 to complete. | 
|   52  |   60  | 
|   53 It is not normally appropriate to invoke this program directly. Usually, it will |   61 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 |   62 be invoked by a Crashpad client using the Crashpad client library, or started by | 
|   55 programs may be run with a Crashpad handler by using |   63 another system service. On OS X, arbitrary programs may be run with a Crashpad | 
|   56 man_link:run_with_crashpad[1] to establish the Crashpad client environment |   64 handler by using man_link:run_with_crashpad[1] to establish the Crashpad client | 
|   57 before running a program. |   65 environment before running a program. | 
|   58  |   66  | 
|   59 == Options |   67 == Options | 
|   60 *--annotation*='KEY=VALUE':: |   68 *--annotation*='KEY=VALUE':: | 
|   61 Sets a process-level annotation mapping 'KEY' to 'VALUE' in each crash report |   69 Sets a process-level annotation mapping 'KEY' to 'VALUE' in each crash report | 
|   62 that is written. This option may appear zero, one, or multiple times. |   70 that is written. This option may appear zero, one, or multiple times. | 
|   63 + |   71 + | 
|   64 Most annotations should be provided by the Crashpad client as module-level |   72 Most annotations should be provided by the Crashpad client as module-level | 
|   65 annotations instead of process-level annotations. Module-level annotations are |   73 annotations instead of process-level annotations. Module-level annotations are | 
|   66 more flexible in that they can be modified and cleared during the client |   74 more flexible in that they can be modified and cleared during the client | 
|   67 program’s lifetime. Module-level annotations can be set via the Crashpad client |   75 program’s lifetime. Module-level annotations can be set via the Crashpad client | 
|   68 library. Process-level annotations are useful for annotations that the |   76 library. Process-level annotations are useful for annotations that the | 
|   69 collection server requires be present, that have fixed values, and for cases |   77 collection server requires be present, that have fixed values, and for cases | 
|   70 where a program that does not use the Crashpad client library is being |   78 where a program that does not use the Crashpad client library is being | 
|   71 monitored. |   79 monitored. | 
|   72 + |   80 + | 
|   73 Breakpad-type collection servers only require the +"prod"+ and +"ver"+ |   81 Breakpad-type collection servers only require the +"prod"+ and +"ver"+ | 
|   74 annotations, which should be set to the product name or identifier and product |   82 annotations, which should be set to the product name or identifier and product | 
|   75 version, respectively. It is unusual to specify other annotations as |   83 version, respectively. It is unusual to specify other annotations as | 
|   76 process-level annotations via this argument. |   84 process-level annotations via this argument. | 
|   77  |   85  | 
|   78 *--database*='PATH':: |   86 *--database*='PATH':: | 
|   79 Use 'PATH' as the path to the Crashpad crash report database. This option is |   87 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 |   88 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 |   89 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 |   90 database does not exist, it will be created, provided that the parent directory | 
|   83 of 'PATH' exists. |   91 of 'PATH' exists. | 
|   84  |   92  | 
|   85 *--handshake-fd*='FD':: |   93 *--handshake-fd*='FD':: | 
|   86 Perform the handshake with the initial client on the file descriptor at 'FD'. |   94 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. |   95 Either this option or *--mach-service*, but not both, is required. This option | 
 |   96 is only valid on OS X. | 
 |   97  | 
 |   98 *--mach-service*='SERVICE':: | 
 |   99 Check in with the bootstrap server under the name 'SERVICE'. Either this option | 
 |  100 or *--handshake-fd*, but not both, is required. This option is only valid on OS | 
 |  101 X. | 
 |  102 + | 
 |  103 'SERVICE' may already be reserved with the bootstrap server in cases where this | 
 |  104 tool is started by launchd(8) as a result of a message being sent to a service | 
 |  105 declared in a job’s +MachServices+ dictionary (see launchd.plist(5)). The | 
 |  106 service name may also be completely unknown to the system. | 
|   88  |  107  | 
|   89 *--persistent*:: |  108 *--persistent*:: | 
|   90 Continue running after the last client exits. If this option is not specified, |  109 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 |  110 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 |  111 always waits for at least one client to connect. This option is only valid on | 
|   93 Windows. |  112 Windows. | 
|   94  |  113  | 
|   95 *--pipe-name*='PIPE':: |  114 *--pipe-name*='PIPE':: | 
|   96 Listen on the given pipe name for connections from clients. 'PIPE' must be of |  115 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 |  116 the form +\\.\pipe\<somename>+. This option is required. This option is only | 
| (...skipping 28 matching lines...) Expand all  Loading... | 
|  126 Failure, with a message printed to the standard error stream. |  145 Failure, with a message printed to the standard error stream. | 
|  127  |  146  | 
|  128 == See Also |  147 == See Also | 
|  129  |  148  | 
|  130 man_link:catch_exception_tool[1], |  149 man_link:catch_exception_tool[1], | 
|  131 man_link:crashpad_database_util[1], |  150 man_link:crashpad_database_util[1], | 
|  132 man_link:generate_dump[1], |  151 man_link:generate_dump[1], | 
|  133 man_link:run_with_crashpad[1] |  152 man_link:run_with_crashpad[1] | 
|  134  |  153  | 
|  135 include::../doc/support/man_footer.ad[] |  154 include::../doc/support/man_footer.ad[] | 
| OLD | NEW |