[Reproducers] Improve reproducer API and add unit tests.
When I landed the initial reproducer framework I knew there were some
things that needed improvement. Rather than bundling it with a patch
that adds more functionality I split it off into this patch. I also
think the API is stable enough to add unit testing, which is included in
this patch as well.
Other improvements include:
- Refactor how we initialize the loader and generator.
- Improve naming consistency: capture and replay seems the least ambiguous.
- Index providers by name and make sure there's only one of each.
- Add convenience methods for creating and accessing providers.
Differential revision: https://reviews.llvm.org/D54616
llvm-svn: 347716
diff --git a/lldb/source/API/SBDebugger.cpp b/lldb/source/API/SBDebugger.cpp
index 1ea1258..a721796 100644
--- a/lldb/source/API/SBDebugger.cpp
+++ b/lldb/source/API/SBDebugger.cpp
@@ -1057,9 +1057,15 @@
: nullptr);
}
-void SBDebugger::SetReproducerPath(const char *p) {
- if (m_opaque_sp)
- m_opaque_sp->SetReproducerPath(llvm::StringRef::withNullAsEmpty(p));
+SBError SBDebugger::ReplayReproducer(const char *p) {
+ SBError sb_error;
+ if (m_opaque_sp) {
+ auto error =
+ m_opaque_sp->SetReproducerReplay(llvm::StringRef::withNullAsEmpty(p));
+ std::string error_str = llvm::toString(std::move(error));
+ sb_error.ref().SetErrorString(error_str);
+ }
+ return sb_error;
}
ScriptLanguage SBDebugger::GetScriptLanguage() const {