StoppointCallbackContext.h revision 63094e0bb161580564954dee512955c1c79d3476
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
16namespace 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
30class StoppointCallbackContext
31{
32public:
33    StoppointCallbackContext();
34
35    StoppointCallbackContext(Event *event, Process* process, Thread *thread = NULL, StackFrame * frame = NULL, 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    ExecutionContext exe_ctx;   // 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