1 //===-- StoppointCallbackContext.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 LLDB_BREAKPOINT_STOPPOINTCALLBACKCONTEXT_H 10 #define LLDB_BREAKPOINT_STOPPOINTCALLBACKCONTEXT_H 11 12 #include "lldb/Target/ExecutionContext.h" 13 #include "lldb/lldb-private.h" 14 15 namespace lldb_private { 16 17 /// \class StoppointCallbackContext StoppointCallbackContext.h 18 /// "lldb/Breakpoint/StoppointCallbackContext.h" Class holds the information 19 /// that a breakpoint callback needs to evaluate this stop. 20 21 /// General Outline: 22 /// When we hit a breakpoint we need to package up whatever information is 23 /// needed to evaluate breakpoint commands and conditions. This class is the 24 /// container of that information. 25 26 class StoppointCallbackContext { 27 public: 28 StoppointCallbackContext(); 29 30 StoppointCallbackContext(Event *event, const ExecutionContext &exe_ctx, 31 bool synchronously = false); 32 33 /// Clear the object's state. 34 /// 35 /// Sets the event, process and thread to NULL, and the frame index to an 36 /// invalid value. 37 void Clear(); 38 39 // Member variables 40 Event *event; // This is the event, the callback can modify this to indicate 41 // the meaning of the breakpoint hit 42 ExecutionContextRef 43 exe_ctx_ref; // This tells us where we have stopped, what thread. 44 bool is_synchronous; // Is the callback being executed synchronously with the 45 // breakpoint, 46 // or asynchronously as the event is retrieved? 47 }; 48 49 } // namespace lldb_private 50 51 #endif // LLDB_BREAKPOINT_STOPPOINTCALLBACKCONTEXT_H 52