124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===-- StoppointCallbackContext.h ------------------------------*- C++ -*-===// 224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// The LLVM Compiler Infrastructure 424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// This file is distributed under the University of Illinois Open Source 624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// License. See LICENSE.TXT for details. 724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===----------------------------------------------------------------------===// 924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#ifndef liblldb_StoppointCallbackContext_h_ 1124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define liblldb_StoppointCallbackContext_h_ 1224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include "lldb/lldb-private.h" 1424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include "lldb/Target/ExecutionContext.h" 1524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnernamespace lldb_private { 1724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//---------------------------------------------------------------------- 1924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner/// @class StoppointCallbackContext StoppointCallbackContext.h "lldb/Breakpoint/StoppointCallbackContext.h" 2024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner/// @brief Class holds the information that a breakpoint callback needs to evaluate this stop. 2124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//---------------------------------------------------------------------- 2224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//---------------------------------------------------------------------- 2424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner/// General Outline: 2524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner/// When we hit a breakpoint we need to package up whatever information is needed 2624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner/// to evaluate breakpoint commands and conditions. This class is the container of 2724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner/// that information. 2824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//---------------------------------------------------------------------- 2924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass StoppointCallbackContext 3124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 3224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerpublic: 3324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner StoppointCallbackContext(); 3424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 35f4124deeb9532044a38c0774ced872f2709347daGreg Clayton StoppointCallbackContext(Event *event, const ExecutionContext &exe_ctx, bool synchronously = false); 3624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 3824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// Clear the object's state. 3924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// 4024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// Sets the event, process and thread to NULL, and the frame index to an 4124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// invalid value. 4224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 4324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner void 4424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner Clear (); 4524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 4724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner // Member variables 4824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 4924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner Event *event; // This is the event, the callback can modify this to indicate 5024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner // the meaning of the breakpoint hit 51f4124deeb9532044a38c0774ced872f2709347daGreg Clayton ExecutionContextRef exe_ctx_ref; // This tells us where we have stopped, what thread. 5224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool is_synchronous; // Is the callback being executed synchronously with the breakpoint, 5324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner // or asynchronously as the event is retrieved? 5424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner}; 5524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 5624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} // namespace lldb_private 5724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 5824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif // liblldb_StoppointCallbackContext_h_ 59