StoppointLocation.h. Added a new lldb_private::Address function: addr_t Address::GetOpcodeLoadAddress (Target *target) const; This will strip any special bits from an address to make sure it is suitable for use in addressing an opcode. Often ARM addresses have an extra bit zero that can be set to indicate ARM vs Thumb addresses (gotten from return address registers, or symbol addresses that may be marked up specially). We need to strip these bits off prior to setting breakpoints, so we can centralized the place to do this inside the Address class. llvm-svn: 131658
49 lines
1.4 KiB
C++
49 lines
1.4 KiB
C++
//===-- StoppointLocation.cpp -----------------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "lldb/Breakpoint/StoppointLocation.h"
|
|
|
|
// C Includes
|
|
// C++ Includes
|
|
// Other libraries and framework includes
|
|
// Project includes
|
|
|
|
using namespace lldb;
|
|
using namespace lldb_private;
|
|
|
|
//----------------------------------------------------------------------
|
|
// StoppointLocation constructor
|
|
//----------------------------------------------------------------------
|
|
StoppointLocation::StoppointLocation (break_id_t bid, addr_t addr, bool hardware) :
|
|
m_loc_id(bid),
|
|
m_addr(addr),
|
|
m_hw_preferred(hardware),
|
|
m_hw_index(LLDB_INVALID_INDEX32),
|
|
m_byte_size(0),
|
|
m_hit_count(0)
|
|
{
|
|
}
|
|
|
|
StoppointLocation::StoppointLocation (break_id_t bid, addr_t addr, size_t size, bool hardware) :
|
|
m_loc_id(bid),
|
|
m_addr(addr),
|
|
m_hw_preferred(hardware),
|
|
m_hw_index(LLDB_INVALID_INDEX32),
|
|
m_byte_size(size),
|
|
m_hit_count(0)
|
|
{
|
|
}
|
|
|
|
//----------------------------------------------------------------------
|
|
// Destructor
|
|
//----------------------------------------------------------------------
|
|
StoppointLocation::~StoppointLocation()
|
|
{
|
|
}
|