1254721Semaste//===-- StoppointCallbackContext.h ------------------------------*- C++ -*-===// 2254721Semaste// 3254721Semaste// The LLVM Compiler Infrastructure 4254721Semaste// 5254721Semaste// This file is distributed under the University of Illinois Open Source 6254721Semaste// License. See LICENSE.TXT for details. 7254721Semaste// 8254721Semaste//===----------------------------------------------------------------------===// 9254721Semaste 10254721Semaste#ifndef liblldb_StoppointCallbackContext_h_ 11254721Semaste#define liblldb_StoppointCallbackContext_h_ 12254721Semaste 13254721Semaste#include "lldb/lldb-private.h" 14254721Semaste#include "lldb/Target/ExecutionContext.h" 15254721Semaste 16254721Semastenamespace lldb_private { 17254721Semaste 18254721Semaste//---------------------------------------------------------------------- 19254721Semaste/// @class StoppointCallbackContext StoppointCallbackContext.h "lldb/Breakpoint/StoppointCallbackContext.h" 20254721Semaste/// @brief Class holds the information that a breakpoint callback needs to evaluate this stop. 21254721Semaste//---------------------------------------------------------------------- 22254721Semaste 23254721Semaste//---------------------------------------------------------------------- 24254721Semaste/// General Outline: 25254721Semaste/// When we hit a breakpoint we need to package up whatever information is needed 26254721Semaste/// to evaluate breakpoint commands and conditions. This class is the container of 27254721Semaste/// that information. 28254721Semaste//---------------------------------------------------------------------- 29254721Semaste 30254721Semasteclass StoppointCallbackContext 31254721Semaste{ 32254721Semastepublic: 33254721Semaste StoppointCallbackContext(); 34254721Semaste 35254721Semaste StoppointCallbackContext(Event *event, const ExecutionContext &exe_ctx, bool synchronously = false); 36254721Semaste 37254721Semaste //------------------------------------------------------------------ 38254721Semaste /// Clear the object's state. 39254721Semaste /// 40254721Semaste /// Sets the event, process and thread to NULL, and the frame index to an 41254721Semaste /// invalid value. 42254721Semaste //------------------------------------------------------------------ 43254721Semaste void 44254721Semaste Clear (); 45254721Semaste 46254721Semaste //------------------------------------------------------------------ 47254721Semaste // Member variables 48254721Semaste //------------------------------------------------------------------ 49254721Semaste Event *event; // This is the event, the callback can modify this to indicate 50254721Semaste // the meaning of the breakpoint hit 51254721Semaste ExecutionContextRef exe_ctx_ref; // This tells us where we have stopped, what thread. 52254721Semaste bool is_synchronous; // Is the callback being executed synchronously with the breakpoint, 53254721Semaste // or asynchronously as the event is retrieved? 54254721Semaste}; 55254721Semaste 56254721Semaste} // namespace lldb_private 57254721Semaste 58254721Semaste#endif // liblldb_StoppointCallbackContext_h_ 59