brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · ddae1a8 Raw
35 lines · cpp
1//===-- InstructionBreakpoint.cpp ------------------------------------*- C++2//-*-===//3//4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.5// See https://llvm.org/LICENSE.txt for license information.6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception7//8//===----------------------------------------------------------------------===//9 10#include "InstructionBreakpoint.h"11#include "DAP.h"12#include "lldb/API/SBBreakpoint.h"13#include "lldb/API/SBTarget.h"14#include "llvm/ADT/StringRef.h"15 16namespace lldb_dap {17 18InstructionBreakpoint::InstructionBreakpoint(19    DAP &d, const protocol::InstructionBreakpoint &breakpoint)20    : Breakpoint(d, breakpoint.condition, breakpoint.hitCondition),21      m_instruction_address_reference(LLDB_INVALID_ADDRESS),22      m_offset(breakpoint.offset.value_or(0)) {23  llvm::StringRef instruction_reference(breakpoint.instructionReference);24  instruction_reference.getAsInteger(0, m_instruction_address_reference);25  m_instruction_address_reference += m_offset;26}27 28void InstructionBreakpoint::SetBreakpoint() {29  m_bp =30      m_dap.target.BreakpointCreateByAddress(m_instruction_address_reference);31  Breakpoint::SetBreakpoint();32}33 34} // namespace lldb_dap35