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;
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);
return intel_pt_type.takeError();
return attr;
-#endif
}
+#endif
size_t IntelPTSingleBufferTrace::GetTraceBufferSize() const {
return m_perf_event.GetAuxBuffer().size();
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);
} else {
return perf_event.takeError();
}
+#endif
}