diff options
Diffstat (limited to 'lldb/source/API/SBTrace.cpp')
| -rw-r--r-- | lldb/source/API/SBTrace.cpp | 17 |
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; |
