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