xref: /openbsd-src/gnu/llvm/lldb/tools/lldb-vscode/FunctionBreakpoint.cpp (revision f6aab3d83b51b91c24247ad2c2573574de475a82)
1061da546Spatrick //===-- FunctionBreakpoint.cpp ----------------------------------*- C++ -*-===//
2061da546Spatrick //
3061da546Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4061da546Spatrick // See https://llvm.org/LICENSE.txt for license information.
5061da546Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6061da546Spatrick //
7061da546Spatrick //===----------------------------------------------------------------------===//
8061da546Spatrick 
9061da546Spatrick #include "FunctionBreakpoint.h"
10061da546Spatrick #include "VSCode.h"
11061da546Spatrick 
12061da546Spatrick namespace lldb_vscode {
13061da546Spatrick 
FunctionBreakpoint(const llvm::json::Object & obj)14061da546Spatrick FunctionBreakpoint::FunctionBreakpoint(const llvm::json::Object &obj)
15dda28197Spatrick     : BreakpointBase(obj), functionName(std::string(GetString(obj, "name"))) {}
16061da546Spatrick 
SetBreakpoint()17061da546Spatrick void FunctionBreakpoint::SetBreakpoint() {
18061da546Spatrick   if (functionName.empty())
19061da546Spatrick     return;
20061da546Spatrick   bp = g_vsc.target.BreakpointCreateByName(functionName.c_str());
21dda28197Spatrick   // See comments in BreakpointBase::GetBreakpointLabel() for details of why
22dda28197Spatrick   // we add a label to our breakpoints.
23dda28197Spatrick   bp.AddName(GetBreakpointLabel());
24061da546Spatrick   if (!condition.empty())
25061da546Spatrick     SetCondition();
26061da546Spatrick   if (!hitCondition.empty())
27061da546Spatrick     SetHitCondition();
28*f6aab3d8Srobert   if (!logMessage.empty())
29*f6aab3d8Srobert     SetLogMessage();
30061da546Spatrick }
31061da546Spatrick 
32be691f3bSpatrick } // namespace lldb_vscode
33