1 | //===-- IDebugDelegate.h ----------------------------------------*- C++ -*-===// |
2 | // |
3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
4 | // See https://llvm.org/LICENSE.txt for license information. |
5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6 | // |
7 | //===----------------------------------------------------------------------===// |
8 | |
9 | #ifndef liblldb_Plugins_Process_Windows_IDebugDelegate_H_ |
10 | #define liblldb_Plugins_Process_Windows_IDebugDelegate_H_ |
11 | |
12 | #include "ForwardDecl.h" |
13 | #include "lldb/lldb-forward.h" |
14 | #include "lldb/lldb-types.h" |
15 | #include <string> |
16 | |
17 | namespace lldb_private { |
18 | class Status; |
19 | class HostThread; |
20 | |
21 | // IDebugDelegate |
22 | // |
23 | // IDebugDelegate defines an interface which allows implementors to receive |
24 | // notification of events that happen in a debugged process. |
25 | class IDebugDelegate { |
26 | public: |
27 | virtual ~IDebugDelegate() {} |
28 | |
29 | virtual void OnExitProcess(uint32_t exit_code) = 0; |
30 | virtual void OnDebuggerConnected(lldb::addr_t image_base) = 0; |
31 | virtual ExceptionResult OnDebugException(bool first_chance, |
32 | const ExceptionRecord &record) = 0; |
33 | virtual void OnCreateThread(const HostThread &thread) = 0; |
34 | virtual void OnExitThread(lldb::tid_t thread_id, uint32_t exit_code) = 0; |
35 | virtual void OnLoadDll(const ModuleSpec &module_spec, |
36 | lldb::addr_t module_addr) = 0; |
37 | virtual void OnUnloadDll(lldb::addr_t module_addr) = 0; |
38 | virtual void OnDebugString(const std::string &string) = 0; |
39 | virtual void OnDebuggerError(const Status &error, uint32_t type) = 0; |
40 | }; |
41 | } |
42 | |
43 | #endif |
44 | |