• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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:
~IDebugDelegate()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