summaryrefslogtreecommitdiff
path: root/lldb/source/API/SBAddress.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/API/SBAddress.cpp')
-rw-r--r--lldb/source/API/SBAddress.cpp323
1 files changed, 0 insertions, 323 deletions
diff --git a/lldb/source/API/SBAddress.cpp b/lldb/source/API/SBAddress.cpp
deleted file mode 100644
index 6013fd38cf27..000000000000
--- a/lldb/source/API/SBAddress.cpp
+++ /dev/null
@@ -1,323 +0,0 @@
-//===-- SBAddress.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/API/SBAddress.h"
-#include "lldb/API/SBProcess.h"
-#include "lldb/API/SBSection.h"
-#include "lldb/API/SBStream.h"
-#include "lldb/Core/Address.h"
-#include "lldb/Core/Log.h"
-#include "lldb/Core/Module.h"
-#include "lldb/Host/Mutex.h"
-#include "lldb/Target/Target.h"
-
-
-using namespace lldb;
-using namespace lldb_private;
-
-
-SBAddress::SBAddress () :
- m_opaque_ap ()
-{
-}
-
-SBAddress::SBAddress (const Address *lldb_object_ptr) :
- m_opaque_ap ()
-{
- if (lldb_object_ptr)
- ref() = *lldb_object_ptr;
-}
-
-SBAddress::SBAddress (const SBAddress &rhs) :
- m_opaque_ap ()
-{
- if (rhs.IsValid())
- ref() = rhs.ref();
-}
-
-
-SBAddress::SBAddress (lldb::SBSection section, lldb::addr_t offset) :
- m_opaque_ap(new Address (section.GetSP(), offset))
-{
-}
-
-// Create an address by resolving a load address using the supplied target
-SBAddress::SBAddress (lldb::addr_t load_addr, lldb::SBTarget &target) :
- m_opaque_ap()
-{
- SetLoadAddress (load_addr, target);
-}
-
-
-
-SBAddress::~SBAddress ()
-{
-}
-
-const SBAddress &
-SBAddress::operator = (const SBAddress &rhs)
-{
- if (this != &rhs)
- {
- if (rhs.IsValid())
- ref() = rhs.ref();
- else
- m_opaque_ap.reset();
- }
- return *this;
-}
-
-bool
-SBAddress::IsValid () const
-{
- return m_opaque_ap.get() != NULL && m_opaque_ap->IsValid();
-}
-
-void
-SBAddress::Clear ()
-{
- m_opaque_ap.reset();
-}
-
-void
-SBAddress::SetAddress (lldb::SBSection section, lldb::addr_t offset)
-{
- Address &addr = ref();
- addr.SetSection (section.GetSP());
- addr.SetOffset (offset);
-}
-
-
-void
-SBAddress::SetAddress (const Address *lldb_object_ptr)
-{
- if (lldb_object_ptr)
- ref() = *lldb_object_ptr;
- else
- m_opaque_ap.reset();
-}
-
-lldb::addr_t
-SBAddress::GetFileAddress () const
-{
- if (m_opaque_ap.get())
- return m_opaque_ap->GetFileAddress();
- else
- return LLDB_INVALID_ADDRESS;
-}
-
-lldb::addr_t
-SBAddress::GetLoadAddress (const SBTarget &target) const
-{
- LogSP log(GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
-
- lldb::addr_t addr = LLDB_INVALID_ADDRESS;
- TargetSP target_sp (target.GetSP());
- if (m_opaque_ap.get())
- {
- Mutex::Locker api_locker (target_sp->GetAPIMutex());
- addr = m_opaque_ap->GetLoadAddress (target_sp.get());
- }
-
- if (log)
- {
- if (addr == LLDB_INVALID_ADDRESS)
- log->Printf ("SBAddress::GetLoadAddress (SBTarget(%p)) => LLDB_INVALID_ADDRESS", target_sp.get());
- else
- log->Printf ("SBAddress::GetLoadAddress (SBTarget(%p)) => 0x%llx", target_sp.get(), addr);
- }
-
- return addr;
-}
-
-void
-SBAddress::SetLoadAddress (lldb::addr_t load_addr, lldb::SBTarget &target)
-{
- // Create the address object if we don't already have one
- ref();
- if (target.IsValid())
- *this = target.ResolveLoadAddress(load_addr);
- else
- m_opaque_ap->Clear();
-
- // Check if we weren't were able to resolve a section offset address.
- // If we weren't it is ok, the load address might be a location on the
- // stack or heap, so we should just have an address with no section and
- // a valid offset
- if (!m_opaque_ap->IsValid())
- m_opaque_ap->SetOffset(load_addr);
-}
-
-bool
-SBAddress::OffsetAddress (addr_t offset)
-{
- if (m_opaque_ap.get())
- {
- addr_t addr_offset = m_opaque_ap->GetOffset();
- if (addr_offset != LLDB_INVALID_ADDRESS)
- {
- m_opaque_ap->SetOffset(addr_offset + offset);
- return true;
- }
- }
- return false;
-}
-
-lldb::SBSection
-SBAddress::GetSection ()
-{
- lldb::SBSection sb_section;
- if (m_opaque_ap.get())
- sb_section.SetSP (m_opaque_ap->GetSection());
- return sb_section;
-}
-
-lldb::addr_t
-SBAddress::GetOffset ()
-{
- if (m_opaque_ap.get())
- m_opaque_ap->GetOffset();
- return 0;
-}
-
-Address *
-SBAddress::operator->()
-{
- return m_opaque_ap.get();
-}
-
-const Address *
-SBAddress::operator->() const
-{
- return m_opaque_ap.get();
-}
-
-Address &
-SBAddress::ref ()
-{
- if (m_opaque_ap.get() == NULL)
- m_opaque_ap.reset (new Address());
- return *m_opaque_ap;
-}
-
-const Address &
-SBAddress::ref () const
-{
- // This object should already have checked with "IsValid()"
- // prior to calling this function. In case you didn't we will assert
- // and die to let you know.
- assert (m_opaque_ap.get());
- return *m_opaque_ap;
-}
-
-Address *
-SBAddress::get ()
-{
- return m_opaque_ap.get();
-}
-
-bool
-SBAddress::GetDescription (SBStream &description)
-{
- // Call "ref()" on the stream to make sure it creates a backing stream in
- // case there isn't one already...
- Stream &strm = description.ref();
- if (m_opaque_ap.get())
- {
- m_opaque_ap->Dump (&strm,
- NULL,
- Address::DumpStyleResolvedDescription,
- Address::DumpStyleModuleWithFileAddress,
- 4);
- StreamString sstrm;
-// m_opaque_ap->Dump (&sstrm, NULL, Address::DumpStyleResolvedDescription, Address::DumpStyleInvalid, 4);
-// if (sstrm.GetData())
-// strm.Printf (" (%s)", sstrm.GetData());
- }
- else
- strm.PutCString ("No value");
-
- return true;
-}
-
-SBModule
-SBAddress::GetModule ()
-{
- SBModule sb_module;
- if (m_opaque_ap.get())
- sb_module.SetSP (m_opaque_ap->GetModule());
- return sb_module;
-}
-
-SBSymbolContext
-SBAddress::GetSymbolContext (uint32_t resolve_scope)
-{
- SBSymbolContext sb_sc;
- if (m_opaque_ap.get())
- m_opaque_ap->CalculateSymbolContext (&sb_sc.ref(), resolve_scope);
- return sb_sc;
-}
-
-SBCompileUnit
-SBAddress::GetCompileUnit ()
-{
- SBCompileUnit sb_comp_unit;
- if (m_opaque_ap.get())
- sb_comp_unit.reset(m_opaque_ap->CalculateSymbolContextCompileUnit());
- return sb_comp_unit;
-}
-
-SBFunction
-SBAddress::GetFunction ()
-{
- SBFunction sb_function;
- if (m_opaque_ap.get())
- sb_function.reset(m_opaque_ap->CalculateSymbolContextFunction());
- return sb_function;
-}
-
-SBBlock
-SBAddress::GetBlock ()
-{
- SBBlock sb_block;
- if (m_opaque_ap.get())
- sb_block.SetPtr(m_opaque_ap->CalculateSymbolContextBlock());
- return sb_block;
-}
-
-SBSymbol
-SBAddress::GetSymbol ()
-{
- SBSymbol sb_symbol;
- if (m_opaque_ap.get())
- sb_symbol.reset(m_opaque_ap->CalculateSymbolContextSymbol());
- return sb_symbol;
-}
-
-SBLineEntry
-SBAddress::GetLineEntry ()
-{
- SBLineEntry sb_line_entry;
- if (m_opaque_ap.get())
- {
- LineEntry line_entry;
- if (m_opaque_ap->CalculateSymbolContextLineEntry (line_entry))
- sb_line_entry.SetLineEntry (line_entry);
- }
- return sb_line_entry;
-}
-
-AddressClass
-SBAddress::GetAddressClass ()
-{
- if (m_opaque_ap.get())
- return m_opaque_ap->GetAddressClass();
- return eAddressClassInvalid;
-}
-