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)14061da546SpatrickFunctionBreakpoint::FunctionBreakpoint(const llvm::json::Object &obj) 15dda28197Spatrick : BreakpointBase(obj), functionName(std::string(GetString(obj, "name"))) {} 16061da546Spatrick SetBreakpoint()17061da546Spatrickvoid 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