aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/API/SBTrace.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/API/SBTrace.cpp')
-rw-r--r--lldb/source/API/SBTrace.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/lldb/source/API/SBTrace.cpp b/lldb/source/API/SBTrace.cpp
index 64a675e2e16c..fe9003237073 100644
--- a/lldb/source/API/SBTrace.cpp
+++ b/lldb/source/API/SBTrace.cpp
@@ -9,6 +9,7 @@
#include "lldb/Target/Process.h"
#include "lldb/Utility/Instrumentation.h"
+#include "lldb/API/SBDebugger.h"
#include "lldb/API/SBStructuredData.h"
#include "lldb/API/SBThread.h"
#include "lldb/API/SBTrace.h"
@@ -19,6 +20,7 @@
using namespace lldb;
using namespace lldb_private;
+using namespace llvm;
SBTrace::SBTrace() { LLDB_INSTRUMENT_VA(this); }
@@ -26,6 +28,21 @@ SBTrace::SBTrace(const lldb::TraceSP &trace_sp) : m_opaque_sp(trace_sp) {
LLDB_INSTRUMENT_VA(this, trace_sp);
}
+SBTrace SBTrace::LoadTraceFromFile(SBError &error, SBDebugger &debugger,
+ const SBFileSpec &trace_description_file) {
+ LLDB_INSTRUMENT_VA(error, debugger, trace_description_file);
+
+ Expected<lldb::TraceSP> trace_or_err = Trace::LoadPostMortemTraceFromFile(
+ debugger.ref(), trace_description_file.ref());
+
+ if (!trace_or_err) {
+ error.SetErrorString(toString(trace_or_err.takeError()).c_str());
+ return SBTrace();
+ }
+
+ return SBTrace(trace_or_err.get());
+}
+
const char *SBTrace::GetStartConfigurationHelp() {
LLDB_INSTRUMENT_VA(this);
return m_opaque_sp ? m_opaque_sp->GetStartConfigurationHelp() : nullptr;