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