1 //===-- FunctionBreakpoint.cpp ----------------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #include "FunctionBreakpoint.h"
10 #include "VSCode.h"
11 
12 namespace lldb_vscode {
13 
FunctionBreakpoint(const llvm::json::Object & obj)14 FunctionBreakpoint::FunctionBreakpoint(const llvm::json::Object &obj)
15     : BreakpointBase(obj), functionName(std::string(GetString(obj, "name"))) {}
16 
SetBreakpoint()17 void FunctionBreakpoint::SetBreakpoint() {
18   if (functionName.empty())
19     return;
20   bp = g_vsc.target.BreakpointCreateByName(functionName.c_str());
21   // See comments in BreakpointBase::GetBreakpointLabel() for details of why
22   // we add a label to our breakpoints.
23   bp.AddName(GetBreakpointLabel());
24   if (!condition.empty())
25     SetCondition();
26   if (!hitCondition.empty())
27     SetHitCondition();
28 }
29 
30 } // namespace lldb_vscode
31