diff options
Diffstat (limited to 'source/API/SBBreakpointLocation.cpp')
| -rw-r--r-- | source/API/SBBreakpointLocation.cpp | 521 | 
1 files changed, 234 insertions, 287 deletions
diff --git a/source/API/SBBreakpointLocation.cpp b/source/API/SBBreakpointLocation.cpp index 631a32bc9ddaf..c7fac7688f830 100644 --- a/source/API/SBBreakpointLocation.cpp +++ b/source/API/SBBreakpointLocation.cpp @@ -8,13 +8,11 @@  //===----------------------------------------------------------------------===//  #include "lldb/API/SBBreakpointLocation.h" -#include "lldb/API/SBDefines.h"  #include "lldb/API/SBAddress.h"  #include "lldb/API/SBDebugger.h" +#include "lldb/API/SBDefines.h"  #include "lldb/API/SBStream.h" -#include "lldb/lldb-types.h" -#include "lldb/lldb-defines.h"  #include "lldb/Breakpoint/Breakpoint.h"  #include "lldb/Breakpoint/BreakpointLocation.h"  #include "lldb/Core/Debugger.h" @@ -23,347 +21,296 @@  #include "lldb/Core/StreamFile.h"  #include "lldb/Interpreter/CommandInterpreter.h"  #include "lldb/Interpreter/ScriptInterpreter.h" -#include "lldb/Target/ThreadSpec.h"  #include "lldb/Target/Target.h"  #include "lldb/Target/ThreadSpec.h" +#include "lldb/Target/ThreadSpec.h" +#include "lldb/lldb-defines.h" +#include "lldb/lldb-types.h"  using namespace lldb;  using namespace lldb_private; - -SBBreakpointLocation::SBBreakpointLocation () : -    m_opaque_sp () -{ +SBBreakpointLocation::SBBreakpointLocation() : m_opaque_sp() {} + +SBBreakpointLocation::SBBreakpointLocation( +    const lldb::BreakpointLocationSP &break_loc_sp) +    : m_opaque_sp(break_loc_sp) { +  Log *log(lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_API)); + +  if (log) { +    SBStream sstr; +    GetDescription(sstr, lldb::eDescriptionLevelBrief); +    log->Printf("SBBreakpointLocation::SBBreakpointLocaiton (const " +                "lldb::BreakpointLocationsSP &break_loc_sp" +                "=%p)  => this.sp = %p (%s)", +                static_cast<void *>(break_loc_sp.get()), +                static_cast<void *>(m_opaque_sp.get()), sstr.GetData()); +  }  } -SBBreakpointLocation::SBBreakpointLocation (const lldb::BreakpointLocationSP &break_loc_sp) : -    m_opaque_sp (break_loc_sp) -{ -    Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API)); - -    if (log) -    { -        SBStream sstr; -        GetDescription (sstr, lldb::eDescriptionLevelBrief); -        log->Printf ("SBBreakpointLocation::SBBreakpointLocaiton (const lldb::BreakpointLocationsSP &break_loc_sp" -                     "=%p)  => this.sp = %p (%s)", -                     static_cast<void*>(break_loc_sp.get()), -                     static_cast<void*>(m_opaque_sp.get()), sstr.GetData()); -    } -} +SBBreakpointLocation::SBBreakpointLocation(const SBBreakpointLocation &rhs) +    : m_opaque_sp(rhs.m_opaque_sp) {} -SBBreakpointLocation::SBBreakpointLocation(const SBBreakpointLocation &rhs) : -    m_opaque_sp (rhs.m_opaque_sp) -{ +const SBBreakpointLocation &SBBreakpointLocation:: +operator=(const SBBreakpointLocation &rhs) { +  if (this != &rhs) +    m_opaque_sp = rhs.m_opaque_sp; +  return *this;  } -const SBBreakpointLocation & -SBBreakpointLocation::operator = (const SBBreakpointLocation &rhs) -{ -    if (this != &rhs) -        m_opaque_sp = rhs.m_opaque_sp; -    return *this; -} +SBBreakpointLocation::~SBBreakpointLocation() {} +bool SBBreakpointLocation::IsValid() const { return m_opaque_sp.get() != NULL; } -SBBreakpointLocation::~SBBreakpointLocation () -{ +SBAddress SBBreakpointLocation::GetAddress() { +  if (m_opaque_sp) +    return SBAddress(&m_opaque_sp->GetAddress()); +  else +    return SBAddress();  } -bool -SBBreakpointLocation::IsValid() const -{ -    return m_opaque_sp.get() != NULL; -} - -SBAddress -SBBreakpointLocation::GetAddress () -{ -    if (m_opaque_sp) -        return SBAddress(&m_opaque_sp->GetAddress()); -    else -        return SBAddress(); -} +addr_t SBBreakpointLocation::GetLoadAddress() { +  addr_t ret_addr = LLDB_INVALID_ADDRESS; -addr_t -SBBreakpointLocation::GetLoadAddress () -{ -    addr_t ret_addr = LLDB_INVALID_ADDRESS; +  if (m_opaque_sp) { +    std::lock_guard<std::recursive_mutex> guard( +        m_opaque_sp->GetTarget().GetAPIMutex()); +    ret_addr = m_opaque_sp->GetLoadAddress(); +  } -    if (m_opaque_sp) -    { -        std::lock_guard<std::recursive_mutex> guard(m_opaque_sp->GetTarget().GetAPIMutex()); -        ret_addr = m_opaque_sp->GetLoadAddress(); -    } - -    return ret_addr; +  return ret_addr;  } -void -SBBreakpointLocation::SetEnabled (bool enabled) -{ -    if (m_opaque_sp) -    { -        std::lock_guard<std::recursive_mutex> guard(m_opaque_sp->GetTarget().GetAPIMutex()); -        m_opaque_sp->SetEnabled (enabled); -    } +void SBBreakpointLocation::SetEnabled(bool enabled) { +  if (m_opaque_sp) { +    std::lock_guard<std::recursive_mutex> guard( +        m_opaque_sp->GetTarget().GetAPIMutex()); +    m_opaque_sp->SetEnabled(enabled); +  }  } -bool -SBBreakpointLocation::IsEnabled () -{ -    if (m_opaque_sp) -    { -        std::lock_guard<std::recursive_mutex> guard(m_opaque_sp->GetTarget().GetAPIMutex()); -        return m_opaque_sp->IsEnabled(); -    } -    else -        return false; +bool SBBreakpointLocation::IsEnabled() { +  if (m_opaque_sp) { +    std::lock_guard<std::recursive_mutex> guard( +        m_opaque_sp->GetTarget().GetAPIMutex()); +    return m_opaque_sp->IsEnabled(); +  } else +    return false;  } -uint32_t -SBBreakpointLocation::GetIgnoreCount () -{ -    if (m_opaque_sp) -    { -        std::lock_guard<std::recursive_mutex> guard(m_opaque_sp->GetTarget().GetAPIMutex()); -        return m_opaque_sp->GetIgnoreCount(); -    } -    else -        return 0; +uint32_t SBBreakpointLocation::GetIgnoreCount() { +  if (m_opaque_sp) { +    std::lock_guard<std::recursive_mutex> guard( +        m_opaque_sp->GetTarget().GetAPIMutex()); +    return m_opaque_sp->GetIgnoreCount(); +  } else +    return 0;  } -void -SBBreakpointLocation::SetIgnoreCount (uint32_t n) -{ -    if (m_opaque_sp) -    { -        std::lock_guard<std::recursive_mutex> guard(m_opaque_sp->GetTarget().GetAPIMutex()); -        m_opaque_sp->SetIgnoreCount (n); -    } +void SBBreakpointLocation::SetIgnoreCount(uint32_t n) { +  if (m_opaque_sp) { +    std::lock_guard<std::recursive_mutex> guard( +        m_opaque_sp->GetTarget().GetAPIMutex()); +    m_opaque_sp->SetIgnoreCount(n); +  }  } -void -SBBreakpointLocation::SetCondition (const char *condition) -{ -    if (m_opaque_sp) -    { -        std::lock_guard<std::recursive_mutex> guard(m_opaque_sp->GetTarget().GetAPIMutex()); -        m_opaque_sp->SetCondition (condition); -    } +void SBBreakpointLocation::SetCondition(const char *condition) { +  if (m_opaque_sp) { +    std::lock_guard<std::recursive_mutex> guard( +        m_opaque_sp->GetTarget().GetAPIMutex()); +    m_opaque_sp->SetCondition(condition); +  }  } -const char * -SBBreakpointLocation::GetCondition () -{ -    if (m_opaque_sp) -    { -        std::lock_guard<std::recursive_mutex> guard(m_opaque_sp->GetTarget().GetAPIMutex()); -        return m_opaque_sp->GetConditionText (); -    } -    return NULL; +const char *SBBreakpointLocation::GetCondition() { +  if (m_opaque_sp) { +    std::lock_guard<std::recursive_mutex> guard( +        m_opaque_sp->GetTarget().GetAPIMutex()); +    return m_opaque_sp->GetConditionText(); +  } +  return NULL;  } -void -SBBreakpointLocation::SetScriptCallbackFunction (const char *callback_function_name) -{ -    Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API)); - -    if (log) -        log->Printf ("SBBreakpointLocation(%p)::SetScriptCallbackFunction (callback=%s)", -                     static_cast<void*>(m_opaque_sp.get()), -                     callback_function_name); - -    if (m_opaque_sp) -    { -        std::lock_guard<std::recursive_mutex> guard(m_opaque_sp->GetTarget().GetAPIMutex()); -        BreakpointOptions *bp_options = m_opaque_sp->GetLocationOptions(); -        m_opaque_sp->GetBreakpoint().GetTarget().GetDebugger().GetCommandInterpreter().GetScriptInterpreter()->SetBreakpointCommandCallbackFunction (bp_options, -                                                                                                                                     callback_function_name); -    } +void SBBreakpointLocation::SetScriptCallbackFunction( +    const char *callback_function_name) { +  Log *log(lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_API)); + +  if (log) +    log->Printf( +        "SBBreakpointLocation(%p)::SetScriptCallbackFunction (callback=%s)", +        static_cast<void *>(m_opaque_sp.get()), callback_function_name); + +  if (m_opaque_sp) { +    std::lock_guard<std::recursive_mutex> guard( +        m_opaque_sp->GetTarget().GetAPIMutex()); +    BreakpointOptions *bp_options = m_opaque_sp->GetLocationOptions(); +    m_opaque_sp->GetBreakpoint() +        .GetTarget() +        .GetDebugger() +        .GetCommandInterpreter() +        .GetScriptInterpreter() +        ->SetBreakpointCommandCallbackFunction(bp_options, +                                               callback_function_name); +  }  }  SBError -SBBreakpointLocation::SetScriptCallbackBody (const char *callback_body_text) -{ -    Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API)); - -    if (log) -        log->Printf ("SBBreakpoint(%p)::SetScriptCallbackBody: callback body:\n%s)", -                     static_cast<void*>(m_opaque_sp.get()), callback_body_text); - -    SBError sb_error; -    if (m_opaque_sp) -    { -        std::lock_guard<std::recursive_mutex> guard(m_opaque_sp->GetTarget().GetAPIMutex()); -        BreakpointOptions *bp_options = m_opaque_sp->GetLocationOptions(); -        Error error = m_opaque_sp->GetBreakpoint().GetTarget().GetDebugger().GetCommandInterpreter().GetScriptInterpreter()->SetBreakpointCommandCallback (bp_options, -                                                                                                                                                           callback_body_text); -        sb_error.SetError(error); -    } -    else -        sb_error.SetErrorString("invalid breakpoint"); - -    return sb_error; +SBBreakpointLocation::SetScriptCallbackBody(const char *callback_body_text) { +  Log *log(lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_API)); + +  if (log) +    log->Printf("SBBreakpoint(%p)::SetScriptCallbackBody: callback body:\n%s)", +                static_cast<void *>(m_opaque_sp.get()), callback_body_text); + +  SBError sb_error; +  if (m_opaque_sp) { +    std::lock_guard<std::recursive_mutex> guard( +        m_opaque_sp->GetTarget().GetAPIMutex()); +    BreakpointOptions *bp_options = m_opaque_sp->GetLocationOptions(); +    Error error = +        m_opaque_sp->GetBreakpoint() +            .GetTarget() +            .GetDebugger() +            .GetCommandInterpreter() +            .GetScriptInterpreter() +            ->SetBreakpointCommandCallback(bp_options, callback_body_text); +    sb_error.SetError(error); +  } else +    sb_error.SetErrorString("invalid breakpoint"); + +  return sb_error;  } -void -SBBreakpointLocation::SetThreadID (tid_t thread_id) -{ -    if (m_opaque_sp) -    { -        std::lock_guard<std::recursive_mutex> guard(m_opaque_sp->GetTarget().GetAPIMutex()); -        m_opaque_sp->SetThreadID (thread_id); -    } +void SBBreakpointLocation::SetThreadID(tid_t thread_id) { +  if (m_opaque_sp) { +    std::lock_guard<std::recursive_mutex> guard( +        m_opaque_sp->GetTarget().GetAPIMutex()); +    m_opaque_sp->SetThreadID(thread_id); +  }  } -tid_t -SBBreakpointLocation::GetThreadID () -{ -    tid_t tid = LLDB_INVALID_THREAD_ID; -    if (m_opaque_sp) -    { -        std::lock_guard<std::recursive_mutex> guard(m_opaque_sp->GetTarget().GetAPIMutex()); -        return m_opaque_sp->GetThreadID(); -    } -    return tid; +tid_t SBBreakpointLocation::GetThreadID() { +  tid_t tid = LLDB_INVALID_THREAD_ID; +  if (m_opaque_sp) { +    std::lock_guard<std::recursive_mutex> guard( +        m_opaque_sp->GetTarget().GetAPIMutex()); +    return m_opaque_sp->GetThreadID(); +  } +  return tid;  } -void -SBBreakpointLocation::SetThreadIndex (uint32_t index) -{ -    if (m_opaque_sp) -    { -        std::lock_guard<std::recursive_mutex> guard(m_opaque_sp->GetTarget().GetAPIMutex()); -        m_opaque_sp->SetThreadIndex (index); -    } +void SBBreakpointLocation::SetThreadIndex(uint32_t index) { +  if (m_opaque_sp) { +    std::lock_guard<std::recursive_mutex> guard( +        m_opaque_sp->GetTarget().GetAPIMutex()); +    m_opaque_sp->SetThreadIndex(index); +  }  } -uint32_t -SBBreakpointLocation::GetThreadIndex() const -{ -    uint32_t thread_idx = UINT32_MAX; -    if (m_opaque_sp) -    { -        std::lock_guard<std::recursive_mutex> guard(m_opaque_sp->GetTarget().GetAPIMutex()); -        return m_opaque_sp->GetThreadIndex(); -    } -    return thread_idx; -} -     - -void -SBBreakpointLocation::SetThreadName (const char *thread_name) -{ -    if (m_opaque_sp) -    { -        std::lock_guard<std::recursive_mutex> guard(m_opaque_sp->GetTarget().GetAPIMutex()); -        m_opaque_sp->SetThreadName (thread_name); -    } +uint32_t SBBreakpointLocation::GetThreadIndex() const { +  uint32_t thread_idx = UINT32_MAX; +  if (m_opaque_sp) { +    std::lock_guard<std::recursive_mutex> guard( +        m_opaque_sp->GetTarget().GetAPIMutex()); +    return m_opaque_sp->GetThreadIndex(); +  } +  return thread_idx;  } -const char * -SBBreakpointLocation::GetThreadName () const -{ -    if (m_opaque_sp) -    { -        std::lock_guard<std::recursive_mutex> guard(m_opaque_sp->GetTarget().GetAPIMutex()); -        return m_opaque_sp->GetThreadName(); -    } -    return NULL; +void SBBreakpointLocation::SetThreadName(const char *thread_name) { +  if (m_opaque_sp) { +    std::lock_guard<std::recursive_mutex> guard( +        m_opaque_sp->GetTarget().GetAPIMutex()); +    m_opaque_sp->SetThreadName(thread_name); +  }  } -void -SBBreakpointLocation::SetQueueName (const char *queue_name) -{ -    if (m_opaque_sp) -    { -        std::lock_guard<std::recursive_mutex> guard(m_opaque_sp->GetTarget().GetAPIMutex()); -        m_opaque_sp->SetQueueName (queue_name); -    } +const char *SBBreakpointLocation::GetThreadName() const { +  if (m_opaque_sp) { +    std::lock_guard<std::recursive_mutex> guard( +        m_opaque_sp->GetTarget().GetAPIMutex()); +    return m_opaque_sp->GetThreadName(); +  } +  return NULL;  } -const char * -SBBreakpointLocation::GetQueueName () const -{ -    if (m_opaque_sp) -    { -        std::lock_guard<std::recursive_mutex> guard(m_opaque_sp->GetTarget().GetAPIMutex()); -        m_opaque_sp->GetQueueName (); -    } -    return NULL; +void SBBreakpointLocation::SetQueueName(const char *queue_name) { +  if (m_opaque_sp) { +    std::lock_guard<std::recursive_mutex> guard( +        m_opaque_sp->GetTarget().GetAPIMutex()); +    m_opaque_sp->SetQueueName(queue_name); +  }  } -bool -SBBreakpointLocation::IsResolved () -{ -    if (m_opaque_sp) -    { -        std::lock_guard<std::recursive_mutex> guard(m_opaque_sp->GetTarget().GetAPIMutex()); -        return m_opaque_sp->IsResolved(); -    } -    return false; +const char *SBBreakpointLocation::GetQueueName() const { +  if (m_opaque_sp) { +    std::lock_guard<std::recursive_mutex> guard( +        m_opaque_sp->GetTarget().GetAPIMutex()); +    m_opaque_sp->GetQueueName(); +  } +  return NULL;  } -void -SBBreakpointLocation::SetLocation (const lldb::BreakpointLocationSP &break_loc_sp) -{ -    // Uninstall the callbacks? -    m_opaque_sp = break_loc_sp; +bool SBBreakpointLocation::IsResolved() { +  if (m_opaque_sp) { +    std::lock_guard<std::recursive_mutex> guard( +        m_opaque_sp->GetTarget().GetAPIMutex()); +    return m_opaque_sp->IsResolved(); +  } +  return false;  } -bool -SBBreakpointLocation::GetDescription (SBStream &description, DescriptionLevel level) -{ -    Stream &strm = description.ref(); - -    if (m_opaque_sp) -    { -        std::lock_guard<std::recursive_mutex> guard(m_opaque_sp->GetTarget().GetAPIMutex()); -        m_opaque_sp->GetDescription (&strm, level); -        strm.EOL(); -    } -    else -        strm.PutCString ("No value"); - -    return true; +void SBBreakpointLocation::SetLocation( +    const lldb::BreakpointLocationSP &break_loc_sp) { +  // Uninstall the callbacks? +  m_opaque_sp = break_loc_sp;  } -break_id_t -SBBreakpointLocation::GetID () -{ -    if (m_opaque_sp) -    { -        std::lock_guard<std::recursive_mutex> guard(m_opaque_sp->GetTarget().GetAPIMutex()); -        return m_opaque_sp->GetID (); -    } -    else -        return LLDB_INVALID_BREAK_ID; +bool SBBreakpointLocation::GetDescription(SBStream &description, +                                          DescriptionLevel level) { +  Stream &strm = description.ref(); + +  if (m_opaque_sp) { +    std::lock_guard<std::recursive_mutex> guard( +        m_opaque_sp->GetTarget().GetAPIMutex()); +    m_opaque_sp->GetDescription(&strm, level); +    strm.EOL(); +  } else +    strm.PutCString("No value"); + +  return true;  } -SBBreakpoint -SBBreakpointLocation::GetBreakpoint () -{ -    Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API)); - -    //if (log) -    //    log->Printf ("SBBreakpointLocation::GetBreakpoint ()"); - -    SBBreakpoint sb_bp; -    if (m_opaque_sp) -    { -        std::lock_guard<std::recursive_mutex> guard(m_opaque_sp->GetTarget().GetAPIMutex()); -        *sb_bp = m_opaque_sp->GetBreakpoint ().shared_from_this(); -    } - -    if (log) -    { -        SBStream sstr; -        sb_bp.GetDescription (sstr); -        log->Printf ("SBBreakpointLocation(%p)::GetBreakpoint () => SBBreakpoint(%p) %s", -                     static_cast<void*>(m_opaque_sp.get()), -                     static_cast<void*>(sb_bp.get()), sstr.GetData()); -    } -    return sb_bp; +break_id_t SBBreakpointLocation::GetID() { +  if (m_opaque_sp) { +    std::lock_guard<std::recursive_mutex> guard( +        m_opaque_sp->GetTarget().GetAPIMutex()); +    return m_opaque_sp->GetID(); +  } else +    return LLDB_INVALID_BREAK_ID;  } +SBBreakpoint SBBreakpointLocation::GetBreakpoint() { +  Log *log(lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_API)); + +  // if (log) +  //    log->Printf ("SBBreakpointLocation::GetBreakpoint ()"); + +  SBBreakpoint sb_bp; +  if (m_opaque_sp) { +    std::lock_guard<std::recursive_mutex> guard( +        m_opaque_sp->GetTarget().GetAPIMutex()); +    *sb_bp = m_opaque_sp->GetBreakpoint().shared_from_this(); +  } + +  if (log) { +    SBStream sstr; +    sb_bp.GetDescription(sstr); +    log->Printf( +        "SBBreakpointLocation(%p)::GetBreakpoint () => SBBreakpoint(%p) %s", +        static_cast<void *>(m_opaque_sp.get()), +        static_cast<void *>(sb_bp.get()), sstr.GetData()); +  } +  return sb_bp; +}  | 
