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

Side by Side Diff: third_party/crashpad/crashpad/client/crashpad_client.h

Issue 2555353002: Update Crashpad to 32981a3ee9d7c2769fb27afa038fe2e194cfa329 (Closed)
Patch Set: fix readme Created 4 years 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 26 matching lines...) Expand all
37 //! \brief The primary interface for an application to have Crashpad monitor 37 //! \brief The primary interface for an application to have Crashpad monitor
38 //! it for crashes. 38 //! it for crashes.
39 class CrashpadClient { 39 class CrashpadClient {
40 public: 40 public:
41 CrashpadClient(); 41 CrashpadClient();
42 ~CrashpadClient(); 42 ~CrashpadClient();
43 43
44 //! \brief Starts a Crashpad handler process, performing any necessary 44 //! \brief Starts a Crashpad handler process, performing any necessary
45 //! handshake to configure it. 45 //! handshake to configure it.
46 //! 46 //!
47 //! This method directs crashes to the Crashpad handler. On Mac OS X, this 47 //! This method directs crashes to the Crashpad handler. On macOS, this is
48 //! is applicable to this process and all child processes. On Windows, child 48 //! applicable to this process and all subsequent child processes. On Windows,
49 //! processes must also register by using SetHandlerIPCPipe(). 49 //! child processes must also register by using SetHandlerIPCPipe().
50 //! 50 //!
51 //! On Mac OS X, this method starts a Crashpad handler and obtains a Mach send 51 //! On macOS, this method starts a Crashpad handler and obtains a Mach send
52 //! right corresponding to a receive right held by the handler process. The 52 //! right corresponding to a receive right held by the handler process. The
53 //! handler process runs an exception server on this port. This method sets 53 //! handler process runs an exception server on this port. This method sets
54 //! the task’s exception port for `EXC_CRASH`, `EXC_RESOURCE`, and `EXC_GUARD` 54 //! the task’s exception port for `EXC_CRASH`, `EXC_RESOURCE`, and `EXC_GUARD`
55 //! exceptions to the Mach send right obtained. The handler will be installed 55 //! exceptions to the Mach send right obtained. The handler will be installed
56 //! with behavior `EXCEPTION_STATE_IDENTITY | MACH_EXCEPTION_CODES` and thread 56 //! with behavior `EXCEPTION_STATE_IDENTITY | MACH_EXCEPTION_CODES` and thread
57 //! state flavor `MACHINE_THREAD_STATE`. Exception ports are inherited, so a 57 //! state flavor `MACHINE_THREAD_STATE`. Exception ports are inherited, so a
58 //! Crashpad handler started here will remain the handler for any child 58 //! Crashpad handler started here will remain the handler for any child
59 //! processes created after StartHandler() is called. Child processes do not 59 //! processes created after StartHandler() is called. These child processes do
60 //! need to call StartHandler() or be aware of Crashpad in any way. The 60 //! not need to call StartHandler() or be aware of Crashpad in any way. The
61 //! Crashpad handler will receive crashes from child processes that have 61 //! Crashpad handler will receive crashes from child processes that have
62 //! inherited it as their exception handler even after the process that called 62 //! inherited it as their exception handler even after the process that called
63 //! StartHandler() exits. 63 //! StartHandler() exits.
64 //! 64 //!
65 //! On Windows, if \a asynchronous_start is `true`, this function will not 65 //! On Windows, if \a asynchronous_start is `true`, this function will not
66 //! directly call `CreateProcess()`, making it suitable for use in a 66 //! directly call `CreateProcess()`, making it suitable for use in a
67 //! `DllMain()`. In that case, the handler is started from a background 67 //! `DllMain()`. In that case, the handler is started from a background
68 //! thread, deferring the handler's startup. Nevertheless, regardless of the 68 //! thread, deferring the handler's startup. Nevertheless, regardless of the
69 //! value of \a asynchronous_start, after calling this method, the global 69 //! value of \a asynchronous_start, after calling this method, the global
70 //! unhandled exception filter is set up, and all crashes will be handled by 70 //! unhandled exception filter is set up, and all crashes will be handled by
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 const std::string& url, 102 const std::string& url,
103 const std::map<std::string, std::string>& annotations, 103 const std::map<std::string, std::string>& annotations,
104 const std::vector<std::string>& arguments, 104 const std::vector<std::string>& arguments,
105 bool restartable, 105 bool restartable,
106 bool asynchronous_start); 106 bool asynchronous_start);
107 107
108 #if defined(OS_MACOSX) || DOXYGEN 108 #if defined(OS_MACOSX) || DOXYGEN
109 //! \brief Sets the process’ crash handler to a Mach service registered with 109 //! \brief Sets the process’ crash handler to a Mach service registered with
110 //! the bootstrap server. 110 //! the bootstrap server.
111 //! 111 //!
112 //! This method is only defined on OS X. 112 //! This method is only defined on macOS.
113 //! 113 //!
114 //! See StartHandler() for more detail on how the port and handler are 114 //! See StartHandler() for more detail on how the port and handler are
115 //! configured. 115 //! configured.
116 //! 116 //!
117 //! \param[in] service_name The service name of a Crashpad exception handler 117 //! \param[in] service_name The service name of a Crashpad exception handler
118 //! service previously registered with the bootstrap server. 118 //! service previously registered with the bootstrap server.
119 //! 119 //!
120 //! \return `true` on success, `false` on failure with a message logged. 120 //! \return `true` on success, `false` on failure with a message logged.
121 bool SetHandlerMachService(const std::string& service_name); 121 bool SetHandlerMachService(const std::string& service_name);
122 122
123 //! \brief Sets the process’ crash handler to a Mach port. 123 //! \brief Sets the process’ crash handler to a Mach port.
124 //! 124 //!
125 //! This method is only defined on OS X. 125 //! This method is only defined on macOS.
126 //! 126 //!
127 //! See StartHandler() for more detail on how the port and handler are 127 //! See StartHandler() for more detail on how the port and handler are
128 //! configured. 128 //! configured.
129 //! 129 //!
130 //! \param[in] exception_port An `exception_port_t` corresponding to a 130 //! \param[in] exception_port An `exception_port_t` corresponding to a
131 //! Crashpad exception handler service. 131 //! Crashpad exception handler service.
132 //! 132 //!
133 //! \return `true` on success, `false` on failure with a message logged. 133 //! \return `true` on success, `false` on failure with a message logged.
134 bool SetHandlerMachPort(base::mac::ScopedMachSendRight exception_port); 134 bool SetHandlerMachPort(base::mac::ScopedMachSendRight exception_port);
135 #endif 135 #endif
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 //! confusion with real exception codes which tend to have those bits 227 //! confusion with real exception codes which tend to have those bits
228 //! set. 228 //! set.
229 kTriggeredExceptionCode = 0xcca11ed, 229 kTriggeredExceptionCode = 0xcca11ed,
230 }; 230 };
231 #endif 231 #endif
232 232
233 #if defined(OS_MACOSX) || DOXYGEN 233 #if defined(OS_MACOSX) || DOXYGEN
234 //! \brief Configures the process to direct its crashes to the default handler 234 //! \brief Configures the process to direct its crashes to the default handler
235 //! for the operating system. 235 //! for the operating system.
236 //! 236 //!
237 //! On OS X, this sets the task’s exception port as in SetHandlerMachPort(), 237 //! On macOS, this sets the task’s exception port as in SetHandlerMachPort(),
238 //! but the exception handler used is obtained from 238 //! but the exception handler used is obtained from
239 //! SystemCrashReporterHandler(). If the system’s crash reporter handler 239 //! SystemCrashReporterHandler(). If the system’s crash reporter handler
240 //! cannot be determined or set, the task’s exception ports for crash-type 240 //! cannot be determined or set, the task’s exception ports for crash-type
241 //! exceptions are cleared. 241 //! exceptions are cleared.
242 //! 242 //!
243 //! Use of this function is strongly discouraged. 243 //! Use of this function is strongly discouraged.
244 //! 244 //!
245 //! \warning After a call to this function, Crashpad will no longer monitor 245 //! \warning After a call to this function, Crashpad will no longer monitor
246 //! the process for crashes until a subsequent call to 246 //! the process for crashes until a subsequent call to
247 //! SetHandlerMachPort(). 247 //! SetHandlerMachPort().
(...skipping 10 matching lines...) Expand all
258 std::wstring ipc_pipe_; 258 std::wstring ipc_pipe_;
259 ScopedKernelHANDLE handler_start_thread_; 259 ScopedKernelHANDLE handler_start_thread_;
260 #endif 260 #endif
261 261
262 DISALLOW_COPY_AND_ASSIGN(CrashpadClient); 262 DISALLOW_COPY_AND_ASSIGN(CrashpadClient);
263 }; 263 };
264 264
265 } // namespace crashpad 265 } // namespace crashpad
266 266
267 #endif // CRASHPAD_CLIENT_CRASHPAD_CLIENT_H_ 267 #endif // CRASHPAD_CLIENT_CRASHPAD_CLIENT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698