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 15namespace 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 26class StoppointCallbackContext { 27public: 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 = nullptr; // This is the event, the callback can modify this to 41 // indicate 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 = 45 false; // Is the callback being executed synchronously with the 46 // breakpoint, 47 // or asynchronously as the event is retrieved? 48}; 49 50} // namespace lldb_private 51 52#endif // LLDB_BREAKPOINT_STOPPOINTCALLBACKCONTEXT_H 53