147beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham//===-- SBEvent.h -----------------------------------------------*- C++ -*-===// 247beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham// 347beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham// The LLVM Compiler Infrastructure 447beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham// 547beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham// This file is distributed under the University of Illinois Open Source 647beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham// License. See LICENSE.TXT for details. 747beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham// 847beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham//===----------------------------------------------------------------------===// 947beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 1047beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham#ifndef LLDB_SBExpressionOptions_h_ 1147beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham#define LLDB_SBExpressionOptions_h_ 1247beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 1347beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham#include "lldb/API/SBDefines.h" 1447beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 1547beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham#include <vector> 1647beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 1747beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Inghamnamespace lldb { 1847beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 1947beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 2047beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Inghamclass SBExpressionOptions 2147beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham{ 2247beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Inghampublic: 2347beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham SBExpressionOptions(); 2447beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 2547beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham SBExpressionOptions (const lldb::SBExpressionOptions &rhs); 2647beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 2747beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham ~SBExpressionOptions(); 2847beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 2947beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham const SBExpressionOptions & 3047beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham operator = (const lldb::SBExpressionOptions &rhs); 3147beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 3247beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham bool 3375a443b04197d18c7034968e11ce831166df3703Greg Clayton GetCoerceResultToId () const; 3447beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 3547beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham void 3675a443b04197d18c7034968e11ce831166df3703Greg Clayton SetCoerceResultToId (bool coerce = true); 3747beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 3847beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham bool 3975a443b04197d18c7034968e11ce831166df3703Greg Clayton GetUnwindOnError () const; 4047beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 4147beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham void 4289e248f04ecb87d0df4a4b96158c3fac0a3e43c7Jim Ingham SetUnwindOnError (bool unwind = true); 4347beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 44b794020ffbd6473c59a6e98be044df50abf7fc30Jim Ingham bool 45b794020ffbd6473c59a6e98be044df50abf7fc30Jim Ingham GetIgnoreBreakpoints () const; 46b794020ffbd6473c59a6e98be044df50abf7fc30Jim Ingham 47b794020ffbd6473c59a6e98be044df50abf7fc30Jim Ingham void 4889e248f04ecb87d0df4a4b96158c3fac0a3e43c7Jim Ingham SetIgnoreBreakpoints (bool ignore = true); 49b794020ffbd6473c59a6e98be044df50abf7fc30Jim Ingham 5047beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham lldb::DynamicValueType 5175a443b04197d18c7034968e11ce831166df3703Greg Clayton GetFetchDynamicValue () const; 5247beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 5347beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham void 5475a443b04197d18c7034968e11ce831166df3703Greg Clayton SetFetchDynamicValue (lldb::DynamicValueType dynamic = lldb::eDynamicCanRunTarget); 5547beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 5647beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham uint32_t 5775a443b04197d18c7034968e11ce831166df3703Greg Clayton GetTimeoutInMicroSeconds () const; 5847beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 5947beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham void 6075a443b04197d18c7034968e11ce831166df3703Greg Clayton SetTimeoutInMicroSeconds (uint32_t timeout = 0); 6147beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 6247beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham bool 6375a443b04197d18c7034968e11ce831166df3703Greg Clayton GetTryAllThreads () const; 6447beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 6547beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham void 6675a443b04197d18c7034968e11ce831166df3703Greg Clayton SetTryAllThreads (bool run_others = true); 6747beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 6847beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Inghamprotected: 6947beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 7047beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham SBExpressionOptions (lldb_private::EvaluateExpressionOptions &expression_options); 7147beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 7247beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham lldb_private::EvaluateExpressionOptions * 7347beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham get () const; 7447beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 7547beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham lldb_private::EvaluateExpressionOptions & 7647beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham ref () const; 7747beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 7819b646725e7d6bebda787fa3cb55ff223a00d907Greg Clayton friend class SBFrame; 7919b646725e7d6bebda787fa3cb55ff223a00d907Greg Clayton friend class SBValue; 8019b646725e7d6bebda787fa3cb55ff223a00d907Greg Clayton friend class SBTarget; 8119b646725e7d6bebda787fa3cb55ff223a00d907Greg Clayton 8247beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Inghamprivate: 8347beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham // This auto_pointer is made in the constructor and is always valid. 84102b2c2681c9a830afe25bfea35557421905e42cGreg Clayton mutable std::unique_ptr<lldb_private::EvaluateExpressionOptions> m_opaque_ap; 8547beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham}; 8647beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 8747beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham} // namespace lldb 8847beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham 8947beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham#endif // LLDB_SBExpressionOptions_h_ 90