Author: Walter Erquinigo Date: 2022-05-09T21:02:40-07:00 New Revision: 909a2e3c8822f0826234aa320794003c7066fada
URL: https://github.com/llvm/llvm-project/commit/909a2e3c8822f0826234aa320794003c7066fada DIFF: https://github.com/llvm/llvm-project/commit/909a2e3c8822f0826234aa320794003c7066fada.diff LOG: [lldb] Fix 7b73de9ec2b19df040c919d3004dfbead9b6ac59 This commit causes https://lab.llvm.org/buildbot/#/builders/17/builds/21743 to fail seemingly because of bad handling of the PERF_ATTR_SIZE_VER5 symbol. This patch tries to handle better the absence of this symbol. Added: Modified: lldb/source/Plugins/Process/Linux/IntelPTSingleBufferTrace.cpp Removed: ################################################################################ diff --git a/lldb/source/Plugins/Process/Linux/IntelPTSingleBufferTrace.cpp b/lldb/source/Plugins/Process/Linux/IntelPTSingleBufferTrace.cpp index 47d587741dbc..30c30eb6cfff 100644 --- a/lldb/source/Plugins/Process/Linux/IntelPTSingleBufferTrace.cpp +++ b/lldb/source/Plugins/Process/Linux/IntelPTSingleBufferTrace.cpp @@ -146,6 +146,7 @@ static Error CheckPsbPeriod(size_t psb_period) { return createStringError(inconvertibleErrorCode(), error.str().c_str()); } +#ifdef PERF_ATTR_SIZE_VER5 static Expected<uint64_t> GeneratePerfEventConfigValue(bool enable_tsc, Optional<size_t> psb_period) { uint64_t config = 0; @@ -179,9 +180,8 @@ GeneratePerfEventConfigValue(bool enable_tsc, Optional<size_t> psb_period) { static Expected<perf_event_attr> CreateIntelPTPerfEventConfiguration(bool enable_tsc, llvm::Optional<size_t> psb_period) { -#ifndef PERF_ATTR_SIZE_VER5 - return llvm_unreachable("Intel PT Linux perf event not supported"); -#else + return createStringError(inconvertibleErrorCode(), + "Intel PT Linux perf event not supported"); perf_event_attr attr; memset(&attr, 0, sizeof(attr)); attr.size = sizeof(attr); @@ -204,8 +204,8 @@ CreateIntelPTPerfEventConfiguration(bool enable_tsc, return intel_pt_type.takeError(); return attr; -#endif } +#endif size_t IntelPTSingleBufferTrace::GetTraceBufferSize() const { return m_perf_event.GetAuxBuffer().size(); @@ -263,6 +263,10 @@ IntelPTSingleBufferTrace::GetTraceBuffer(size_t offset, size_t size) const { Expected<IntelPTSingleBufferTraceUP> IntelPTSingleBufferTrace::Start(const TraceIntelPTStartRequest &request, lldb::tid_t tid) { +#ifndef PERF_ATTR_SIZE_VER5 + return createStringError(inconvertibleErrorCode(), + "Intel PT Linux perf event not supported"); +#else Log *log = GetLog(POSIXLog::Trace); LLDB_LOG(log, "Will start tracing thread id {0}", tid); @@ -299,4 +303,5 @@ IntelPTSingleBufferTrace::Start(const TraceIntelPTStartRequest &request, } else { return perf_event.takeError(); } +#endif } _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits