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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 Alternatively, on OS X, this server may be started from launchd(8), where it | 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 | 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 | 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 | 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 | 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) | 49 any upload in progress to complete. +SIGTERM+ is normally sent by launchd(8) |
50 when it determines that the server should exit. | 50 when it determines that the server should exit. |
51 | 51 |
52 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 |
53 named pipe identified by the *--pipe-name* argument. Alternatively, the server | 53 named pipe identified by the *--pipe-name* argument. Alternatively, the server |
54 can create a new pipe with a random name and inform a client of this name via | 54 can inherit an already-created pipe from a parent process by using the |
55 the *--handshake-handle* mechanism; clients may then register by communicating | 55 *--initial-client-data* mechanism. That argument also takes all of the arguments |
56 with it via that named pipe. During registration, a client provides the server | 56 that would normally be passed in a registration message, and so constitutes |
57 with an OS event object that it will signal should it crash. The server obtains | 57 registration of the first client. Subsequent clients may then register by |
58 the client’s process handle and waits on the crash event object for a crash, as | 58 communicating with the server via the pipe. During registration, a client |
59 well as the client’s process handle for the client to exit cleanly without | 59 provides the server with an OS event object that it will signal should it crash. |
60 crashing. When a server started via the *--handshake-handle* mechanism loses all | 60 The server obtains the client’s process handle and waits on the crash event |
61 of its clients, it exits after allowing any upload in progress to complete. | 61 object for a crash, as well as the client’s process handle for the client to |
| 62 exit cleanly without crashing. When a server started via the |
| 63 *--initial-client-data* mechanism loses all of its clients, it exits after |
| 64 allowing any upload in progress to complete. |
62 | 65 |
63 On Windows, this executable is built by default as a Windows GUI app, so no | 66 On Windows, this executable is built by default as a Windows GUI app, so no |
64 console will appear in normal usage. This is the version that will typically be | 67 console will appear in normal usage. This is the version that will typically be |
65 used. A second copy is also made with a +.com+ extension, rather than +.exe+. In | 68 used. A second copy is also made with a +.com+ extension, rather than +.exe+. In |
66 this second copy, the PE header is modified to indicate that it's a console app. | 69 this second copy, the PE header is modified to indicate that it's a console app. |
67 This is useful because the +.com+ is found in the path before the +.exe+, so | 70 This is useful because the +.com+ is found in the path before the +.exe+, so |
68 when run normally from a shell using only the basename (without an explicit | 71 when run normally from a shell using only the basename (without an explicit |
69 +.com+ or +.exe+ extension), the +.com+ console version will be chosen, and so | 72 +.com+ or +.exe+ extension), the +.com+ console version will be chosen, and so |
70 stdio will be hooked up as expected to the parent console so that logging output | 73 stdio will be hooked up as expected to the parent console so that logging output |
71 will be visible. | 74 will be visible. |
(...skipping 28 matching lines...) Expand all Loading... |
100 required. Crash reports are written to this database, and if uploads are | 103 required. Crash reports are written to this database, and if uploads are |
101 enabled, uploaded from this database to a crash report collection server. If the | 104 enabled, uploaded from this database to a crash report collection server. If the |
102 database does not exist, it will be created, provided that the parent directory | 105 database does not exist, it will be created, provided that the parent directory |
103 of 'PATH' exists. | 106 of 'PATH' exists. |
104 | 107 |
105 *--handshake-fd*='FD':: | 108 *--handshake-fd*='FD':: |
106 Perform the handshake with the initial client on the file descriptor at 'FD'. | 109 Perform the handshake with the initial client on the file descriptor at 'FD'. |
107 Either this option or *--mach-service*, but not both, is required. This option | 110 Either this option or *--mach-service*, but not both, is required. This option |
108 is only valid on OS X. | 111 is only valid on OS X. |
109 | 112 |
110 *--handshake-handle*='HANDLE':: | 113 *--initial-client-data*='HANDLE_request_crash_dump','HANDLE_request_non_crash_du
mp','HANDLE_non_crash_dump_completed','HANDLE_first_pipe_instance','HANDLE_clien
t_process','Address_crash_exception_information','Address_non_crash_exception_in
formation','Address_debug_critical_section':: |
111 Perform the handshake with the initial client on the HANDLE at 'HANDLE'. Either | 114 Register the initial client using the inherited handles and data provided. For |
112 this option or *--pipe-name*, but not both, is required. This option is only | 115 more information on the arguments, see the implementations of +CrashpadClient+ |
113 valid on Windows. | 116 and +ExceptionHandlerServer+. Either this option or *--pipe-name*, but not both, |
| 117 is required. This option is only valid on Windows. |
114 + | 118 + |
115 When this option is present, the server creates a new named pipe at a random | 119 When this option is present, the server creates a new named pipe at a random |
116 name and informs its client of the name. The server waits for at least one | 120 name and informs its client of the name. The server waits for at least one |
117 client to register, and exits when all clients have exited, after waiting for | 121 client to register, and exits when all clients have exited, after waiting for |
118 any uploads in progress to complete. | 122 any uploads in progress to complete. |
119 | 123 |
120 *--mach-service*='SERVICE':: | 124 *--mach-service*='SERVICE':: |
121 Check in with the bootstrap server under the name 'SERVICE'. Either this option | 125 Check in with the bootstrap server under the name 'SERVICE'. Either this option |
122 or *--handshake-fd*, but not both, is required. This option is only valid on OS | 126 or *--handshake-fd*, but not both, is required. This option is only valid on OS |
123 X. | 127 X. |
124 + | 128 + |
125 'SERVICE' may already be reserved with the bootstrap server in cases where this | 129 'SERVICE' may already be reserved with the bootstrap server in cases where this |
126 tool is started by launchd(8) as a result of a message being sent to a service | 130 tool is started by launchd(8) as a result of a message being sent to a service |
127 declared in a job’s +MachServices+ dictionary (see launchd.plist(5)). The | 131 declared in a job’s +MachServices+ dictionary (see launchd.plist(5)). The |
128 service name may also be completely unknown to the system. | 132 service name may also be completely unknown to the system. |
129 | 133 |
130 *--no-rate-limit*:: | 134 *--no-rate-limit*:: |
131 Do not rate limit the upload of crash reports. By default uploads are throttled | 135 Do not rate limit the upload of crash reports. By default uploads are throttled |
132 to one per hour. Using this option disables that behavior, and Crashpad will | 136 to one per hour. Using this option disables that behavior, and Crashpad will |
133 attempt to upload all captured reports. | 137 attempt to upload all captured reports. |
134 | 138 |
135 *--pipe-name*='PIPE':: | 139 *--pipe-name*='PIPE':: |
136 Listen on the given pipe name for connections from clients. 'PIPE' must be of | 140 Listen on the given pipe name for connections from clients. 'PIPE' must be of |
137 the form +\\.\pipe\<somename>+. Either this option or *--handshake-handle*, but | 141 the form +\\.\pipe\<somename>+. Either this option or *--initial-client-data*, |
138 not both, is required. This option is only valid on Windows. | 142 but not both, is required. This option is only valid on Windows. |
139 + | 143 + |
140 When this option is present, the server creates a named pipe at 'PIPE', a name | 144 When this option is present, the server creates a named pipe at 'PIPE', a name |
141 known to both the server and its clients. The server continues running even | 145 known to both the server and its clients. The server continues running even |
142 after all clients have exited. | 146 after all clients have exited. |
143 | 147 |
144 *--reset-own-crash-exception-port-to-system-default*:: | 148 *--reset-own-crash-exception-port-to-system-default*:: |
145 Causes the exception handler server to set its own crash handler to the system | 149 Causes the exception handler server to set its own crash handler to the system |
146 default before beginning operation. This is only expected to be useful in cases | 150 default before beginning operation. This is only expected to be useful in cases |
147 where the server inherits an inappropriate crash handler from its parent | 151 where the server inherits an inappropriate crash handler from its parent |
148 process. This option is only valid on OS X. Use of this option is discouraged. | 152 process. This option is only valid on OS X. Use of this option is discouraged. |
(...skipping 21 matching lines...) Expand all Loading... |
170 Failure, with a message printed to the standard error stream. | 174 Failure, with a message printed to the standard error stream. |
171 | 175 |
172 == See Also | 176 == See Also |
173 | 177 |
174 man_link:catch_exception_tool[1], | 178 man_link:catch_exception_tool[1], |
175 man_link:crashpad_database_util[1], | 179 man_link:crashpad_database_util[1], |
176 man_link:generate_dump[1], | 180 man_link:generate_dump[1], |
177 man_link:run_with_crashpad[1] | 181 man_link:run_with_crashpad[1] |
178 | 182 |
179 include::../doc/support/man_footer.ad[] | 183 include::../doc/support/man_footer.ad[] |
OLD | NEW |