OLD | NEW |
1 // Copyright 2015 The Crashpad Authors. All rights reserved. | 1 // Copyright 2015 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 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 //! points and is ready to service requests. | 42 //! points and is ready to service requests. |
43 virtual void ExceptionHandlerServerStarted() = 0; | 43 virtual void ExceptionHandlerServerStarted() = 0; |
44 | 44 |
45 //! \brief Called when the client has signalled that it has encountered an | 45 //! \brief Called when the client has signalled that it has encountered an |
46 //! exception and so wants a crash dump to be taken. | 46 //! exception and so wants a crash dump to be taken. |
47 //! | 47 //! |
48 //! \param[in] process A handle to the client process. Ownership of the | 48 //! \param[in] process A handle to the client process. Ownership of the |
49 //! lifetime of this handle is not passed to the delegate. | 49 //! lifetime of this handle is not passed to the delegate. |
50 //! \param[in] exception_information_address The address in the client's | 50 //! \param[in] exception_information_address The address in the client's |
51 //! address space of an ExceptionInformation structure. | 51 //! address space of an ExceptionInformation structure. |
| 52 //! \param[in] debug_critical_section_address The address in the client's |
| 53 //! address space of a `CRITICAL_SECTION` allocated with a valid |
| 54 //! `.DebugInfo` field, or `0` if unavailable. |
52 //! \return The exit code that should be used when terminating the client | 55 //! \return The exit code that should be used when terminating the client |
53 //! process. | 56 //! process. |
54 virtual unsigned int ExceptionHandlerServerException( | 57 virtual unsigned int ExceptionHandlerServerException( |
55 HANDLE process, | 58 HANDLE process, |
56 WinVMAddress exception_information_address) = 0; | 59 WinVMAddress exception_information_address, |
| 60 WinVMAddress debug_critical_section_address) = 0; |
57 }; | 61 }; |
58 | 62 |
59 //! \brief Constructs the exception handling server. | 63 //! \brief Constructs the exception handling server. |
60 ExceptionHandlerServer(); | 64 ExceptionHandlerServer(); |
61 ~ExceptionHandlerServer(); | 65 ~ExceptionHandlerServer(); |
62 | 66 |
63 //! \brief Runs the exception-handling server. | 67 //! \brief Runs the exception-handling server. |
64 //! | 68 //! |
65 //! \param[in] delegate The interface to which the exceptions are delegated | 69 //! \param[in] delegate The interface to which the exceptions are delegated |
66 //! when they are caught in Run(). Ownership is not transferred. | 70 //! when they are caught in Run(). Ownership is not transferred. |
(...skipping 17 matching lines...) Expand all Loading... |
84 | 88 |
85 base::Lock clients_lock_; | 89 base::Lock clients_lock_; |
86 std::set<internal::ClientData*> clients_; | 90 std::set<internal::ClientData*> clients_; |
87 | 91 |
88 DISALLOW_COPY_AND_ASSIGN(ExceptionHandlerServer); | 92 DISALLOW_COPY_AND_ASSIGN(ExceptionHandlerServer); |
89 }; | 93 }; |
90 | 94 |
91 } // namespace crashpad | 95 } // namespace crashpad |
92 | 96 |
93 #endif // CRASHPAD_UTIL_WIN_EXCEPTION_HANDLER_SERVER_H_ | 97 #endif // CRASHPAD_UTIL_WIN_EXCEPTION_HANDLER_SERVER_H_ |
OLD | NEW |