| 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 24 matching lines...) Expand all Loading... |
| 35 public: | 35 public: |
| 36 //! \brief An interface that the different request messages that are a part of | 36 //! \brief An interface that the different request messages that are a part of |
| 37 //! the `exc` Mach subsystem can be dispatched to. | 37 //! the `exc` Mach subsystem can be dispatched to. |
| 38 class Interface { | 38 class Interface { |
| 39 public: | 39 public: |
| 40 //! \brief Handles exceptions raised by `exception_raise()`. | 40 //! \brief Handles exceptions raised by `exception_raise()`. |
| 41 //! | 41 //! |
| 42 //! This behaves equivalently to a `catch_exception_raise()` function used | 42 //! This behaves equivalently to a `catch_exception_raise()` function used |
| 43 //! with `exc_server()`. | 43 //! with `exc_server()`. |
| 44 //! | 44 //! |
| 45 //! \param[in] trailer The trailer received with the request message. |
| 45 //! \param[out] destroy_request `true` if the request message is to be | 46 //! \param[out] destroy_request `true` if the request message is to be |
| 46 //! destroyed even when this method returns success. See | 47 //! destroyed even when this method returns success. See |
| 47 //! MachMessageServer::Interface. | 48 //! MachMessageServer::Interface. |
| 48 virtual kern_return_t CatchExceptionRaise( | 49 virtual kern_return_t CatchExceptionRaise( |
| 49 exception_handler_t exception_port, | 50 exception_handler_t exception_port, |
| 50 thread_t thread, | 51 thread_t thread, |
| 51 task_t task, | 52 task_t task, |
| 52 exception_type_t exception, | 53 exception_type_t exception, |
| 53 const exception_data_type_t* code, | 54 const exception_data_type_t* code, |
| 54 mach_msg_type_number_t code_count, | 55 mach_msg_type_number_t code_count, |
| 56 const mach_msg_trailer_t* trailer, |
| 55 bool* destroy_request) = 0; | 57 bool* destroy_request) = 0; |
| 56 | 58 |
| 57 //! \brief Handles exceptions raised by `exception_raise_state()`. | 59 //! \brief Handles exceptions raised by `exception_raise_state()`. |
| 58 //! | 60 //! |
| 59 //! This behaves equivalently to a `catch_exception_raise_state()` function | 61 //! This behaves equivalently to a `catch_exception_raise_state()` function |
| 60 //! used with `exc_server()`. | 62 //! used with `exc_server()`. |
| 61 //! | 63 //! |
| 62 //! There is no \a destroy_request parameter because, unlike | 64 //! There is no \a destroy_request parameter because, unlike |
| 63 //! CatchExceptionRaise() and CatchExceptionRaiseStateIdentity(), the | 65 //! CatchExceptionRaise() and CatchExceptionRaiseStateIdentity(), the |
| 64 //! request message is not complex (it does not carry the \a thread or \a | 66 //! request message is not complex (it does not carry the \a thread or \a |
| 65 //! task port rights) and thus there is nothing to destroy. | 67 //! task port rights) and thus there is nothing to destroy. |
| 68 //! |
| 69 //! \param[in] trailer The trailer received with the request message. |
| 66 virtual kern_return_t CatchExceptionRaiseState( | 70 virtual kern_return_t CatchExceptionRaiseState( |
| 67 exception_handler_t exception_port, | 71 exception_handler_t exception_port, |
| 68 exception_type_t exception, | 72 exception_type_t exception, |
| 69 const exception_data_type_t* code, | 73 const exception_data_type_t* code, |
| 70 mach_msg_type_number_t code_count, | 74 mach_msg_type_number_t code_count, |
| 71 thread_state_flavor_t* flavor, | 75 thread_state_flavor_t* flavor, |
| 72 const natural_t* old_state, | 76 const natural_t* old_state, |
| 73 mach_msg_type_number_t old_state_count, | 77 mach_msg_type_number_t old_state_count, |
| 74 thread_state_t new_state, | 78 thread_state_t new_state, |
| 75 mach_msg_type_number_t* new_state_count) = 0; | 79 mach_msg_type_number_t* new_state_count, |
| 80 const mach_msg_trailer_t* trailer) = 0; |
| 76 | 81 |
| 77 //! \brief Handles exceptions raised by `exception_raise_state_identity()`. | 82 //! \brief Handles exceptions raised by `exception_raise_state_identity()`. |
| 78 //! | 83 //! |
| 79 //! This behaves equivalently to a `catch_exception_raise_state_identity()` | 84 //! This behaves equivalently to a `catch_exception_raise_state_identity()` |
| 80 //! function used with `exc_server()`. | 85 //! function used with `exc_server()`. |
| 81 //! | 86 //! |
| 87 //! \param[in] trailer The trailer received with the request message. |
| 82 //! \param[out] destroy_request `true` if the request message is to be | 88 //! \param[out] destroy_request `true` if the request message is to be |
| 83 //! destroyed even when this method returns success. See | 89 //! destroyed even when this method returns success. See |
| 84 //! MachMessageServer::Interface. | 90 //! MachMessageServer::Interface. |
| 85 virtual kern_return_t CatchExceptionRaiseStateIdentity( | 91 virtual kern_return_t CatchExceptionRaiseStateIdentity( |
| 86 exception_handler_t exception_port, | 92 exception_handler_t exception_port, |
| 87 thread_t thread, | 93 thread_t thread, |
| 88 task_t task, | 94 task_t task, |
| 89 exception_type_t exception, | 95 exception_type_t exception, |
| 90 const exception_data_type_t* code, | 96 const exception_data_type_t* code, |
| 91 mach_msg_type_number_t code_count, | 97 mach_msg_type_number_t code_count, |
| 92 thread_state_flavor_t* flavor, | 98 thread_state_flavor_t* flavor, |
| 93 const natural_t* old_state, | 99 const natural_t* old_state, |
| 94 mach_msg_type_number_t old_state_count, | 100 mach_msg_type_number_t old_state_count, |
| 95 thread_state_t new_state, | 101 thread_state_t new_state, |
| 96 mach_msg_type_number_t* new_state_count, | 102 mach_msg_type_number_t* new_state_count, |
| 103 const mach_msg_trailer_t* trailer, |
| 97 bool* destroy_request) = 0; | 104 bool* destroy_request) = 0; |
| 98 | 105 |
| 99 protected: | 106 protected: |
| 100 ~Interface() {} | 107 ~Interface() {} |
| 101 }; | 108 }; |
| 102 | 109 |
| 103 //! \brief Constructs an object of this class. | 110 //! \brief Constructs an object of this class. |
| 104 //! | 111 //! |
| 105 //! \param[in] interface The interface to dispatch requests to. Weak. | 112 //! \param[in] interface The interface to dispatch requests to. Weak. |
| 106 explicit ExcServer(Interface* interface); | 113 explicit ExcServer(Interface* interface); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 125 public: | 132 public: |
| 126 //! \brief An interface that the different request messages that are a part of | 133 //! \brief An interface that the different request messages that are a part of |
| 127 //! the `mach_exc` Mach subsystem can be dispatched to. | 134 //! the `mach_exc` Mach subsystem can be dispatched to. |
| 128 class Interface { | 135 class Interface { |
| 129 public: | 136 public: |
| 130 //! \brief Handles exceptions raised by `mach_exception_raise()`. | 137 //! \brief Handles exceptions raised by `mach_exception_raise()`. |
| 131 //! | 138 //! |
| 132 //! This behaves equivalently to a `catch_mach_exception_raise()` function | 139 //! This behaves equivalently to a `catch_mach_exception_raise()` function |
| 133 //! used with `mach_exc_server()`. | 140 //! used with `mach_exc_server()`. |
| 134 //! | 141 //! |
| 142 //! \param[in] trailer The trailer received with the request message. |
| 135 //! \param[out] destroy_request `true` if the request message is to be | 143 //! \param[out] destroy_request `true` if the request message is to be |
| 136 //! destroyed even when this method returns success. See | 144 //! destroyed even when this method returns success. See |
| 137 //! MachMessageServer::Interface. | 145 //! MachMessageServer::Interface. |
| 138 virtual kern_return_t CatchMachExceptionRaise( | 146 virtual kern_return_t CatchMachExceptionRaise( |
| 139 exception_handler_t exception_port, | 147 exception_handler_t exception_port, |
| 140 thread_t thread, | 148 thread_t thread, |
| 141 task_t task, | 149 task_t task, |
| 142 exception_type_t exception, | 150 exception_type_t exception, |
| 143 const mach_exception_data_type_t* code, | 151 const mach_exception_data_type_t* code, |
| 144 mach_msg_type_number_t code_count, | 152 mach_msg_type_number_t code_count, |
| 153 const mach_msg_trailer_t* trailer, |
| 145 bool* destroy_request) = 0; | 154 bool* destroy_request) = 0; |
| 146 | 155 |
| 147 //! \brief Handles exceptions raised by `mach_exception_raise_state()`. | 156 //! \brief Handles exceptions raised by `mach_exception_raise_state()`. |
| 148 //! | 157 //! |
| 149 //! This behaves equivalently to a `catch_mach_exception_raise_state()` | 158 //! This behaves equivalently to a `catch_mach_exception_raise_state()` |
| 150 //! function used with `mach_exc_server()`. | 159 //! function used with `mach_exc_server()`. |
| 151 //! | 160 //! |
| 152 //! There is no \a destroy_request parameter because, unlike | 161 //! There is no \a destroy_request parameter because, unlike |
| 153 //! CatchMachExceptionRaise() and CatchMachExceptionRaiseStateIdentity(), | 162 //! CatchMachExceptionRaise() and CatchMachExceptionRaiseStateIdentity(), |
| 154 //! the request message is not complex (it does not carry the \a thread or | 163 //! the request message is not complex (it does not carry the \a thread or |
| 155 //! \a task port rights) and thus there is nothing to destroy. | 164 //! \a task port rights) and thus there is nothing to destroy. |
| 165 //! |
| 166 //! \param[in] trailer The trailer received with the request message. |
| 156 virtual kern_return_t CatchMachExceptionRaiseState( | 167 virtual kern_return_t CatchMachExceptionRaiseState( |
| 157 exception_handler_t exception_port, | 168 exception_handler_t exception_port, |
| 158 exception_type_t exception, | 169 exception_type_t exception, |
| 159 const mach_exception_data_type_t* code, | 170 const mach_exception_data_type_t* code, |
| 160 mach_msg_type_number_t code_count, | 171 mach_msg_type_number_t code_count, |
| 161 thread_state_flavor_t* flavor, | 172 thread_state_flavor_t* flavor, |
| 162 const natural_t* old_state, | 173 const natural_t* old_state, |
| 163 mach_msg_type_number_t old_state_count, | 174 mach_msg_type_number_t old_state_count, |
| 164 thread_state_t new_state, | 175 thread_state_t new_state, |
| 165 mach_msg_type_number_t* new_state_count) = 0; | 176 mach_msg_type_number_t* new_state_count, |
| 177 const mach_msg_trailer_t* trailer) = 0; |
| 166 | 178 |
| 167 //! \brief Handles exceptions raised by | 179 //! \brief Handles exceptions raised by |
| 168 //! `mach_exception_raise_state_identity()`. | 180 //! `mach_exception_raise_state_identity()`. |
| 169 //! | 181 //! |
| 170 //! This behaves equivalently to a | 182 //! This behaves equivalently to a |
| 171 //! `catch_mach_exception_raise_state_identity()` function used with | 183 //! `catch_mach_exception_raise_state_identity()` function used with |
| 172 //! `mach_exc_server()`. | 184 //! `mach_exc_server()`. |
| 173 //! | 185 //! |
| 186 //! \param[in] trailer The trailer received with the request message. |
| 174 //! \param[out] destroy_request `true` if the request message is to be | 187 //! \param[out] destroy_request `true` if the request message is to be |
| 175 //! destroyed even when this method returns success. See | 188 //! destroyed even when this method returns success. See |
| 176 //! MachMessageServer::Interface. | 189 //! MachMessageServer::Interface. |
| 177 virtual kern_return_t CatchMachExceptionRaiseStateIdentity( | 190 virtual kern_return_t CatchMachExceptionRaiseStateIdentity( |
| 178 exception_handler_t exception_port, | 191 exception_handler_t exception_port, |
| 179 thread_t thread, | 192 thread_t thread, |
| 180 task_t task, | 193 task_t task, |
| 181 exception_type_t exception, | 194 exception_type_t exception, |
| 182 const mach_exception_data_type_t* code, | 195 const mach_exception_data_type_t* code, |
| 183 mach_msg_type_number_t code_count, | 196 mach_msg_type_number_t code_count, |
| 184 thread_state_flavor_t* flavor, | 197 thread_state_flavor_t* flavor, |
| 185 const natural_t* old_state, | 198 const natural_t* old_state, |
| 186 mach_msg_type_number_t old_state_count, | 199 mach_msg_type_number_t old_state_count, |
| 187 thread_state_t new_state, | 200 thread_state_t new_state, |
| 188 mach_msg_type_number_t* new_state_count, | 201 mach_msg_type_number_t* new_state_count, |
| 202 const mach_msg_trailer_t* trailer, |
| 189 bool* destroy_request) = 0; | 203 bool* destroy_request) = 0; |
| 190 | 204 |
| 191 protected: | 205 protected: |
| 192 ~Interface() {} | 206 ~Interface() {} |
| 193 }; | 207 }; |
| 194 | 208 |
| 195 //! \brief Constructs an object of this class. | 209 //! \brief Constructs an object of this class. |
| 196 //! | 210 //! |
| 197 //! \param[in] interface The interface to dispatch requests to. Weak. | 211 //! \param[in] interface The interface to dispatch requests to. Weak. |
| 198 explicit MachExcServer(Interface* interface); | 212 explicit MachExcServer(Interface* interface); |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 thread_t thread, | 255 thread_t thread, |
| 242 task_t task, | 256 task_t task, |
| 243 exception_type_t exception, | 257 exception_type_t exception, |
| 244 const exception_data_type_t* code, | 258 const exception_data_type_t* code, |
| 245 mach_msg_type_number_t code_count, | 259 mach_msg_type_number_t code_count, |
| 246 thread_state_flavor_t* flavor, | 260 thread_state_flavor_t* flavor, |
| 247 const natural_t* old_state, | 261 const natural_t* old_state, |
| 248 mach_msg_type_number_t old_state_count, | 262 mach_msg_type_number_t old_state_count, |
| 249 thread_state_t new_state, | 263 thread_state_t new_state, |
| 250 mach_msg_type_number_t* new_state_count, | 264 mach_msg_type_number_t* new_state_count, |
| 265 const mach_msg_trailer_t* trailer, |
| 251 bool* destroy_complex_request) = 0; | 266 bool* destroy_complex_request) = 0; |
| 252 | 267 |
| 253 protected: | 268 protected: |
| 254 ~Interface() {} | 269 ~Interface() {} |
| 255 }; | 270 }; |
| 256 | 271 |
| 257 //! \brief Constructs an object of this class. | 272 //! \brief Constructs an object of this class. |
| 258 //! | 273 //! |
| 259 //! \param[in] interface The interface to dispatch requests to. Weak. | 274 //! \param[in] interface The interface to dispatch requests to. Weak. |
| 260 explicit SimplifiedExcServer(Interface* interface); | 275 explicit SimplifiedExcServer(Interface* interface); |
| 261 | 276 |
| 262 // ExcServer::Interface: | 277 // ExcServer::Interface: |
| 263 | 278 |
| 264 kern_return_t CatchExceptionRaise(exception_handler_t exception_port, | 279 kern_return_t CatchExceptionRaise(exception_handler_t exception_port, |
| 265 thread_t thread, | 280 thread_t thread, |
| 266 task_t task, | 281 task_t task, |
| 267 exception_type_t exception, | 282 exception_type_t exception, |
| 268 const exception_data_type_t* code, | 283 const exception_data_type_t* code, |
| 269 mach_msg_type_number_t code_count, | 284 mach_msg_type_number_t code_count, |
| 285 const mach_msg_trailer_t* trailer, |
| 270 bool* destroy_request) override; | 286 bool* destroy_request) override; |
| 271 kern_return_t CatchExceptionRaiseState( | 287 kern_return_t CatchExceptionRaiseState( |
| 272 exception_handler_t exception_port, | 288 exception_handler_t exception_port, |
| 273 exception_type_t exception, | 289 exception_type_t exception, |
| 274 const exception_data_type_t* code, | 290 const exception_data_type_t* code, |
| 275 mach_msg_type_number_t code_count, | 291 mach_msg_type_number_t code_count, |
| 276 thread_state_flavor_t* flavor, | 292 thread_state_flavor_t* flavor, |
| 277 const natural_t* old_state, | 293 const natural_t* old_state, |
| 278 mach_msg_type_number_t old_state_count, | 294 mach_msg_type_number_t old_state_count, |
| 279 thread_state_t new_state, | 295 thread_state_t new_state, |
| 280 mach_msg_type_number_t* new_state_count) override; | 296 mach_msg_type_number_t* new_state_count, |
| 297 const mach_msg_trailer_t* trailer) override; |
| 281 kern_return_t CatchExceptionRaiseStateIdentity( | 298 kern_return_t CatchExceptionRaiseStateIdentity( |
| 282 exception_handler_t exception_port, | 299 exception_handler_t exception_port, |
| 283 thread_t thread, | 300 thread_t thread, |
| 284 task_t task, | 301 task_t task, |
| 285 exception_type_t exception, | 302 exception_type_t exception, |
| 286 const exception_data_type_t* code, | 303 const exception_data_type_t* code, |
| 287 mach_msg_type_number_t code_count, | 304 mach_msg_type_number_t code_count, |
| 288 thread_state_flavor_t* flavor, | 305 thread_state_flavor_t* flavor, |
| 289 const natural_t* old_state, | 306 const natural_t* old_state, |
| 290 mach_msg_type_number_t old_state_count, | 307 mach_msg_type_number_t old_state_count, |
| 291 thread_state_t new_state, | 308 thread_state_t new_state, |
| 292 mach_msg_type_number_t* new_state_count, | 309 mach_msg_type_number_t* new_state_count, |
| 310 const mach_msg_trailer_t* trailer, |
| 293 bool* destroy_request) override; | 311 bool* destroy_request) override; |
| 294 | 312 |
| 295 private: | 313 private: |
| 296 Interface* interface_; // weak | 314 Interface* interface_; // weak |
| 297 | 315 |
| 298 DISALLOW_COPY_AND_ASSIGN(SimplifiedExcServer); | 316 DISALLOW_COPY_AND_ASSIGN(SimplifiedExcServer); |
| 299 }; | 317 }; |
| 300 | 318 |
| 301 //! \brief A server interface for the `mach_exc` Mach subsystem, simplified to | 319 //! \brief A server interface for the `mach_exc` Mach subsystem, simplified to |
| 302 //! have only a single interface method needing implementation. | 320 //! have only a single interface method needing implementation. |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 337 thread_t thread, | 355 thread_t thread, |
| 338 task_t task, | 356 task_t task, |
| 339 exception_type_t exception, | 357 exception_type_t exception, |
| 340 const mach_exception_data_type_t* code, | 358 const mach_exception_data_type_t* code, |
| 341 mach_msg_type_number_t code_count, | 359 mach_msg_type_number_t code_count, |
| 342 thread_state_flavor_t* flavor, | 360 thread_state_flavor_t* flavor, |
| 343 const natural_t* old_state, | 361 const natural_t* old_state, |
| 344 mach_msg_type_number_t old_state_count, | 362 mach_msg_type_number_t old_state_count, |
| 345 thread_state_t new_state, | 363 thread_state_t new_state, |
| 346 mach_msg_type_number_t* new_state_count, | 364 mach_msg_type_number_t* new_state_count, |
| 365 const mach_msg_trailer_t* trailer, |
| 347 bool* destroy_complex_request) = 0; | 366 bool* destroy_complex_request) = 0; |
| 348 | 367 |
| 349 protected: | 368 protected: |
| 350 ~Interface() {} | 369 ~Interface() {} |
| 351 }; | 370 }; |
| 352 | 371 |
| 353 //! \brief Constructs an object of this class. | 372 //! \brief Constructs an object of this class. |
| 354 //! | 373 //! |
| 355 //! \param[in] interface The interface to dispatch requests to. Weak. | 374 //! \param[in] interface The interface to dispatch requests to. Weak. |
| 356 explicit SimplifiedMachExcServer(Interface* interface); | 375 explicit SimplifiedMachExcServer(Interface* interface); |
| 357 | 376 |
| 358 // MachExcServer::Interface: | 377 // MachExcServer::Interface: |
| 359 | 378 |
| 360 kern_return_t CatchMachExceptionRaise(exception_handler_t exception_port, | 379 kern_return_t CatchMachExceptionRaise(exception_handler_t exception_port, |
| 361 thread_t thread, | 380 thread_t thread, |
| 362 task_t task, | 381 task_t task, |
| 363 exception_type_t exception, | 382 exception_type_t exception, |
| 364 const mach_exception_data_type_t* code, | 383 const mach_exception_data_type_t* code, |
| 365 mach_msg_type_number_t code_count, | 384 mach_msg_type_number_t code_count, |
| 385 const mach_msg_trailer_t* trailer, |
| 366 bool* destroy_request) override; | 386 bool* destroy_request) override; |
| 367 kern_return_t CatchMachExceptionRaiseState( | 387 kern_return_t CatchMachExceptionRaiseState( |
| 368 exception_handler_t exception_port, | 388 exception_handler_t exception_port, |
| 369 exception_type_t exception, | 389 exception_type_t exception, |
| 370 const mach_exception_data_type_t* code, | 390 const mach_exception_data_type_t* code, |
| 371 mach_msg_type_number_t code_count, | 391 mach_msg_type_number_t code_count, |
| 372 thread_state_flavor_t* flavor, | 392 thread_state_flavor_t* flavor, |
| 373 const natural_t* old_state, | 393 const natural_t* old_state, |
| 374 mach_msg_type_number_t old_state_count, | 394 mach_msg_type_number_t old_state_count, |
| 375 thread_state_t new_state, | 395 thread_state_t new_state, |
| 376 mach_msg_type_number_t* new_state_count) override; | 396 mach_msg_type_number_t* new_state_count, |
| 397 const mach_msg_trailer_t* trailer) override; |
| 377 kern_return_t CatchMachExceptionRaiseStateIdentity( | 398 kern_return_t CatchMachExceptionRaiseStateIdentity( |
| 378 exception_handler_t exception_port, | 399 exception_handler_t exception_port, |
| 379 thread_t thread, | 400 thread_t thread, |
| 380 task_t task, | 401 task_t task, |
| 381 exception_type_t exception, | 402 exception_type_t exception, |
| 382 const mach_exception_data_type_t* code, | 403 const mach_exception_data_type_t* code, |
| 383 mach_msg_type_number_t code_count, | 404 mach_msg_type_number_t code_count, |
| 384 thread_state_flavor_t* flavor, | 405 thread_state_flavor_t* flavor, |
| 385 const natural_t* old_state, | 406 const natural_t* old_state, |
| 386 mach_msg_type_number_t old_state_count, | 407 mach_msg_type_number_t old_state_count, |
| 387 thread_state_t new_state, | 408 thread_state_t new_state, |
| 388 mach_msg_type_number_t* new_state_count, | 409 mach_msg_type_number_t* new_state_count, |
| 410 const mach_msg_trailer_t* trailer, |
| 389 bool* destroy_request) override; | 411 bool* destroy_request) override; |
| 390 | 412 |
| 391 private: | 413 private: |
| 392 Interface* interface_; // weak | 414 Interface* interface_; // weak |
| 393 | 415 |
| 394 DISALLOW_COPY_AND_ASSIGN(SimplifiedMachExcServer); | 416 DISALLOW_COPY_AND_ASSIGN(SimplifiedMachExcServer); |
| 395 }; | 417 }; |
| 396 | 418 |
| 397 } // namespace internal | 419 } // namespace internal |
| 398 | 420 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 433 thread_t thread, | 455 thread_t thread, |
| 434 task_t task, | 456 task_t task, |
| 435 exception_type_t exception, | 457 exception_type_t exception, |
| 436 const exception_data_type_t* code, | 458 const exception_data_type_t* code, |
| 437 mach_msg_type_number_t code_count, | 459 mach_msg_type_number_t code_count, |
| 438 thread_state_flavor_t* flavor, | 460 thread_state_flavor_t* flavor, |
| 439 const natural_t* old_state, | 461 const natural_t* old_state, |
| 440 mach_msg_type_number_t old_state_count, | 462 mach_msg_type_number_t old_state_count, |
| 441 thread_state_t new_state, | 463 thread_state_t new_state, |
| 442 mach_msg_type_number_t* new_state_count, | 464 mach_msg_type_number_t* new_state_count, |
| 465 const mach_msg_trailer_t* trailer, |
| 443 bool* destroy_complex_request) override; | 466 bool* destroy_complex_request) override; |
| 444 | 467 |
| 445 private: | 468 private: |
| 446 internal::SimplifiedExcServer exc_server_; | 469 internal::SimplifiedExcServer exc_server_; |
| 447 internal::SimplifiedMachExcServer mach_exc_server_; | 470 internal::SimplifiedMachExcServer mach_exc_server_; |
| 448 | 471 |
| 449 DISALLOW_COPY_AND_ASSIGN(UniversalMachExcServer); | 472 DISALLOW_COPY_AND_ASSIGN(UniversalMachExcServer); |
| 450 }; | 473 }; |
| 451 | 474 |
| 452 //! \brief Recovers the original exception, first exception code, and signal | 475 //! \brief Recovers the original exception, first exception code, and signal |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 529 //! \a behavior is not a state-carrying behavior, or when it is a | 552 //! \a behavior is not a state-carrying behavior, or when it is a |
| 530 //! state-carrying behavior and \a set_thread_state is `true`. | 553 //! state-carrying behavior and \a set_thread_state is `true`. |
| 531 //! `MACH_RCV_PORT_DIED` is used when \a behavior is a state-carrying | 554 //! `MACH_RCV_PORT_DIED` is used when \a behavior is a state-carrying |
| 532 //! behavior and \a set_thread_state is `false`. | 555 //! behavior and \a set_thread_state is `false`. |
| 533 kern_return_t ExcServerSuccessfulReturnValue(exception_behavior_t behavior, | 556 kern_return_t ExcServerSuccessfulReturnValue(exception_behavior_t behavior, |
| 534 bool set_thread_state); | 557 bool set_thread_state); |
| 535 | 558 |
| 536 } // namespace crashpad | 559 } // namespace crashpad |
| 537 | 560 |
| 538 #endif // CRASHPAD_UTIL_MACH_EXC_SERVER_VARIANTS_H_ | 561 #endif // CRASHPAD_UTIL_MACH_EXC_SERVER_VARIANTS_H_ |
| OLD | NEW |