diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2019-08-20 20:51:52 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2019-08-20 20:51:52 +0000 |
commit | 5f29bb8a675e8f96452b632e7129113f7dec850e (patch) | |
tree | 3d3f2a0d3ad10872a4dcaba8ec8d1d20c87ab147 /source/API/SBTrace.cpp | |
parent | 88c643b6fec27eec436c8d138fee6346e92337d6 (diff) |
Notes
Diffstat (limited to 'source/API/SBTrace.cpp')
-rw-r--r-- | source/API/SBTrace.cpp | 60 |
1 files changed, 49 insertions, 11 deletions
diff --git a/source/API/SBTrace.cpp b/source/API/SBTrace.cpp index 9a5fa4ed4f46..9b871e6781d9 100644 --- a/source/API/SBTrace.cpp +++ b/source/API/SBTrace.cpp @@ -1,18 +1,19 @@ //===-- SBTrace.cpp ---------------------------------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// +#include "SBReproducerPrivate.h" #include "lldb/Target/Process.h" -#include "lldb/Utility/Log.h" #include "lldb/API/SBTrace.h" #include "lldb/API/SBTraceOptions.h" +#include <memory> + using namespace lldb; using namespace lldb_private; @@ -25,8 +26,11 @@ lldb::ProcessSP SBTrace::GetSP() const { return m_opaque_wp.lock(); } size_t SBTrace::GetTraceData(SBError &error, void *buf, size_t size, size_t offset, lldb::tid_t thread_id) { + LLDB_RECORD_DUMMY(size_t, SBTrace, GetTraceData, + (lldb::SBError &, void *, size_t, size_t, lldb::tid_t), + error, buf, size, offset, thread_id); + ProcessSP process_sp(GetSP()); - Log *log(lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_API)); llvm::MutableArrayRef<uint8_t> buffer(static_cast<uint8_t *>(buf), size); error.Clear(); @@ -35,30 +39,33 @@ size_t SBTrace::GetTraceData(SBError &error, void *buf, size_t size, } else { error.SetError( process_sp->GetData(GetTraceUID(), thread_id, buffer, offset)); - LLDB_LOG(log, "SBTrace::bytes_read - {0}", buffer.size()); } return buffer.size(); } size_t SBTrace::GetMetaData(SBError &error, void *buf, size_t size, size_t offset, lldb::tid_t thread_id) { + LLDB_RECORD_DUMMY(size_t, SBTrace, GetMetaData, + (lldb::SBError &, void *, size_t, size_t, lldb::tid_t), + error, buf, size, offset, thread_id); + ProcessSP process_sp(GetSP()); - Log *log(lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_API)); llvm::MutableArrayRef<uint8_t> buffer(static_cast<uint8_t *>(buf), size); error.Clear(); if (!process_sp) { error.SetErrorString("invalid process"); } else { - error.SetError( process_sp->GetMetaData(GetTraceUID(), thread_id, buffer, offset)); - LLDB_LOG(log, "SBTrace::bytes_read - {0}", buffer.size()); } return buffer.size(); } void SBTrace::StopTrace(SBError &error, lldb::tid_t thread_id) { + LLDB_RECORD_METHOD(void, SBTrace, StopTrace, (lldb::SBError &, lldb::tid_t), + error, thread_id); + ProcessSP process_sp(GetSP()); error.Clear(); @@ -70,6 +77,9 @@ void SBTrace::StopTrace(SBError &error, lldb::tid_t thread_id) { } void SBTrace::GetTraceConfig(SBTraceOptions &options, SBError &error) { + LLDB_RECORD_METHOD(void, SBTrace, GetTraceConfig, + (lldb::SBTraceOptions &, lldb::SBError &), options, error); + ProcessSP process_sp(GetSP()); error.Clear(); @@ -82,6 +92,8 @@ void SBTrace::GetTraceConfig(SBTraceOptions &options, SBError &error) { } lldb::user_id_t SBTrace::GetTraceUID() { + LLDB_RECORD_METHOD_NO_ARGS(lldb::user_id_t, SBTrace, GetTraceUID); + if (m_trace_impl_sp) return m_trace_impl_sp->uid; return LLDB_INVALID_UID; @@ -93,7 +105,9 @@ void SBTrace::SetTraceUID(lldb::user_id_t uid) { } SBTrace::SBTrace() { - m_trace_impl_sp.reset(new TraceImpl); + LLDB_RECORD_CONSTRUCTOR_NO_ARGS(SBTrace); + + m_trace_impl_sp = std::make_shared<TraceImpl>(); if (m_trace_impl_sp) m_trace_impl_sp->uid = LLDB_INVALID_UID; } @@ -101,9 +115,33 @@ SBTrace::SBTrace() { void SBTrace::SetSP(const ProcessSP &process_sp) { m_opaque_wp = process_sp; } bool SBTrace::IsValid() { + LLDB_RECORD_METHOD_NO_ARGS(bool, SBTrace, IsValid); + return this->operator bool(); +} +SBTrace::operator bool() const { + LLDB_RECORD_METHOD_CONST_NO_ARGS(bool, SBTrace, operator bool); + if (!m_trace_impl_sp) return false; if (!GetSP()) return false; return true; } + +namespace lldb_private { +namespace repro { + +template <> +void RegisterMethods<SBTrace>(Registry &R) { + LLDB_REGISTER_METHOD(void, SBTrace, StopTrace, + (lldb::SBError &, lldb::tid_t)); + LLDB_REGISTER_METHOD(void, SBTrace, GetTraceConfig, + (lldb::SBTraceOptions &, lldb::SBError &)); + LLDB_REGISTER_METHOD(lldb::user_id_t, SBTrace, GetTraceUID, ()); + LLDB_REGISTER_CONSTRUCTOR(SBTrace, ()); + LLDB_REGISTER_METHOD(bool, SBTrace, IsValid, ()); + LLDB_REGISTER_METHOD_CONST(bool, SBTrace, operator bool, ()); +} + +} +} |