diff options
Diffstat (limited to 'lldb/tools/lldb-vscode/BreakpointBase.h')
-rw-r--r-- | lldb/tools/lldb-vscode/BreakpointBase.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/lldb/tools/lldb-vscode/BreakpointBase.h b/lldb/tools/lldb-vscode/BreakpointBase.h new file mode 100644 index 00000000000..e27ffe3bd39 --- /dev/null +++ b/lldb/tools/lldb-vscode/BreakpointBase.h @@ -0,0 +1,44 @@ +//===-- BreakpointBase.h ----------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef LLDBVSCODE_BREAKPOINTBASE_H_ +#define LLDBVSCODE_BREAKPOINTBASE_H_ + +#include "JSONUtils.h" +#include "lldb/API/SBBreakpoint.h" +#include "llvm/Support/JSON.h" +#include <string> + +namespace lldb_vscode { + +struct BreakpointBase { + + // An optional expression for conditional breakpoints. + std::string condition; + // An optional expression that controls how many hits of the breakpoint are + // ignored. The backend is expected to interpret the expression as needed + std::string hitCondition; + // If this attribute exists and is non-empty, the backend must not 'break' + // (stop) but log the message instead. Expressions within {} are + // interpolated. + std::string logMessage; + // The LLDB breakpoint associated wit this source breakpoint + lldb::SBBreakpoint bp; + + BreakpointBase() = default; + BreakpointBase(const llvm::json::Object &obj); + + void SetCondition(); + void SetHitCondition(); + void UpdateBreakpoint(const BreakpointBase &request_bp); +}; + +} // namespace lldb_vscode + +#endif |