1 //===-- ForwardDecl.h -------------------------------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #ifndef liblldb_Plugins_Process_Windows_ForwardDecl_H_
11 #define liblldb_Plugins_Process_Windows_ForwardDecl_H_
12 
13 #include <memory>
14 
15 // ExceptionResult is returned by the debug delegate to specify how it processed
16 // the exception.
17 enum class ExceptionResult {
18   BreakInDebugger,  // Break in the debugger and give the user a chance to
19                     // interact with
20                     // the program before continuing.
21   MaskException,    // Eat the exception and don't let the application know it
22                     // occurred.
23   SendToApplication // Send the exception to the application to be handled as if
24                     // there were
25                     // no debugger attached.
26 };
27 
28 namespace lldb_private {
29 
30 class ProcessWindows;
31 
32 class IDebugDelegate;
33 class DebuggerThread;
34 class ExceptionRecord;
35 
36 typedef std::shared_ptr<IDebugDelegate> DebugDelegateSP;
37 typedef std::shared_ptr<DebuggerThread> DebuggerThreadSP;
38 typedef std::shared_ptr<ExceptionRecord> ExceptionRecordSP;
39 typedef std::unique_ptr<ExceptionRecord> ExceptionRecordUP;
40 }
41 
42 #endif