summaryrefslogtreecommitdiffstats
path: root/lldb/tools/lldb-vscode/BreakpointBase.h
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/tools/lldb-vscode/BreakpointBase.h')
-rw-r--r--lldb/tools/lldb-vscode/BreakpointBase.h44
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
OpenPOWER on IntegriCloud