
This renames the LLDB error class to Status, as discussed on the lldb-dev mailing list. A change of this magnitude cannot easily be done without find and replace, but that has potential to catch unwanted occurrences of common strings such as "Error". Every effort was made to find all the obvious things such as the word "Error" appearing in a string, etc, but it's possible there are still some lingering occurences left around. Hopefully nothing too serious. llvm-svn: 302872
110 lines
3.1 KiB
C++
110 lines
3.1 KiB
C++
//===-- NativeBreakpoint.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/Host/common/NativeBreakpoint.h"
|
|
|
|
#include "lldb/Utility/Log.h"
|
|
#include "lldb/Utility/Status.h"
|
|
#include "lldb/lldb-defines.h"
|
|
|
|
using namespace lldb_private;
|
|
|
|
NativeBreakpoint::NativeBreakpoint(lldb::addr_t addr)
|
|
: m_addr(addr), m_ref_count(1), m_enabled(true) {
|
|
assert(addr != LLDB_INVALID_ADDRESS && "breakpoint set for invalid address");
|
|
}
|
|
|
|
NativeBreakpoint::~NativeBreakpoint() {}
|
|
|
|
void NativeBreakpoint::AddRef() {
|
|
++m_ref_count;
|
|
|
|
Log *log(GetLogIfAnyCategoriesSet(LIBLLDB_LOG_BREAKPOINTS));
|
|
if (log)
|
|
log->Printf("NativeBreakpoint::%s addr = 0x%" PRIx64
|
|
" bumped up, new ref count %" PRIu32,
|
|
__FUNCTION__, m_addr, m_ref_count);
|
|
}
|
|
|
|
int32_t NativeBreakpoint::DecRef() {
|
|
--m_ref_count;
|
|
|
|
Log *log(GetLogIfAnyCategoriesSet(LIBLLDB_LOG_BREAKPOINTS));
|
|
if (log)
|
|
log->Printf("NativeBreakpoint::%s addr = 0x%" PRIx64
|
|
" ref count decremented, new ref count %" PRIu32,
|
|
__FUNCTION__, m_addr, m_ref_count);
|
|
|
|
return m_ref_count;
|
|
}
|
|
|
|
Status NativeBreakpoint::Enable() {
|
|
Log *log(GetLogIfAnyCategoriesSet(LIBLLDB_LOG_BREAKPOINTS));
|
|
|
|
if (m_enabled) {
|
|
// We're already enabled. Just log and exit.
|
|
if (log)
|
|
log->Printf("NativeBreakpoint::%s addr = 0x%" PRIx64
|
|
" already enabled, ignoring.",
|
|
__FUNCTION__, m_addr);
|
|
return Status();
|
|
}
|
|
|
|
// Log and enable.
|
|
if (log)
|
|
log->Printf("NativeBreakpoint::%s addr = 0x%" PRIx64 " enabling...",
|
|
__FUNCTION__, m_addr);
|
|
|
|
Status error = DoEnable();
|
|
if (error.Success()) {
|
|
m_enabled = true;
|
|
if (log)
|
|
log->Printf("NativeBreakpoint::%s addr = 0x%" PRIx64 " enable SUCCESS.",
|
|
__FUNCTION__, m_addr);
|
|
} else {
|
|
if (log)
|
|
log->Printf("NativeBreakpoint::%s addr = 0x%" PRIx64 " enable FAIL: %s",
|
|
__FUNCTION__, m_addr, error.AsCString());
|
|
}
|
|
|
|
return error;
|
|
}
|
|
|
|
Status NativeBreakpoint::Disable() {
|
|
Log *log(GetLogIfAnyCategoriesSet(LIBLLDB_LOG_BREAKPOINTS));
|
|
|
|
if (!m_enabled) {
|
|
// We're already disabled. Just log and exit.
|
|
if (log)
|
|
log->Printf("NativeBreakpoint::%s addr = 0x%" PRIx64
|
|
" already disabled, ignoring.",
|
|
__FUNCTION__, m_addr);
|
|
return Status();
|
|
}
|
|
|
|
// Log and disable.
|
|
if (log)
|
|
log->Printf("NativeBreakpoint::%s addr = 0x%" PRIx64 " disabling...",
|
|
__FUNCTION__, m_addr);
|
|
|
|
Status error = DoDisable();
|
|
if (error.Success()) {
|
|
m_enabled = false;
|
|
if (log)
|
|
log->Printf("NativeBreakpoint::%s addr = 0x%" PRIx64 " disable SUCCESS.",
|
|
__FUNCTION__, m_addr);
|
|
} else {
|
|
if (log)
|
|
log->Printf("NativeBreakpoint::%s addr = 0x%" PRIx64 " disable FAIL: %s",
|
|
__FUNCTION__, m_addr, error.AsCString());
|
|
}
|
|
|
|
return error;
|
|
}
|