Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Side by Side Diff: handler/crashpad_handler.ad

Issue 1432563003: win: crashpad_handler should create its own pipe name in ephemeral mode (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad@master
Patch Set: It's futile to pick and choose errors, retry on all Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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[]
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698