[Lldb-commits] [lldb] r250869 - When target is NULL, provide a debugger so that REPLs can use that to create
Sean Callanan via lldb-commits
lldb-commits at lists.llvm.org
Tue Oct 20 17:28:45 PDT 2015
Author: spyffe
Date: Tue Oct 20 19:28:44 2015
New Revision: 250869
URL: http://llvm.org/viewvc/llvm-project?rev=250869&view=rev
Log:
When target is NULL, provide a debugger so that REPLs can use that to create
their own target.
Modified:
lldb/trunk/include/lldb/Expression/REPL.h
lldb/trunk/include/lldb/lldb-private-interfaces.h
lldb/trunk/source/Core/Debugger.cpp
lldb/trunk/source/Expression/REPL.cpp
lldb/trunk/source/Target/Target.cpp
Modified: lldb/trunk/include/lldb/Expression/REPL.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Expression/REPL.h?rev=250869&r1=250868&r2=250869&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Expression/REPL.h (original)
+++ lldb/trunk/include/lldb/Expression/REPL.h Tue Oct 20 19:28:44 2015
@@ -38,7 +38,7 @@ public:
virtual ~REPL();
//------------------------------------------------------------------
- /// Get a REPL with an (optional) existing target, and (optional) extra arguments for the compiler.
+ /// Get a REPL with an existing target (or, failing that, a debugger to use), and (optional) extra arguments for the compiler.
///
/// @param[out] error
/// If this language is supported but the REPL couldn't be created, this error is populated with the reason.
@@ -46,6 +46,9 @@ public:
/// @param[in] language
/// The language to create a REPL for.
///
+ /// @param[in] debugger
+ /// If provided, and target is NULL, the debugger to use when setting up a top-level REPL.
+ ///
/// @param[in] target
/// If provided, the target to put the REPL inside.
///
@@ -56,7 +59,7 @@ public:
/// The range of the containing object in the target process.
//------------------------------------------------------------------
static lldb::REPLSP
- Create (Error &Error, lldb::LanguageType language, Target *target, const char *repl_options);
+ Create (Error &Error, lldb::LanguageType language, Debugger *debugger, Target *target, const char *repl_options);
void
SetFormatOptions (const OptionGroupFormat &options)
Modified: lldb/trunk/include/lldb/lldb-private-interfaces.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/lldb-private-interfaces.h?rev=250869&r1=250868&r2=250869&view=diff
==============================================================================
--- lldb/trunk/include/lldb/lldb-private-interfaces.h (original)
+++ lldb/trunk/include/lldb/lldb-private-interfaces.h Tue Oct 20 19:28:44 2015
@@ -49,7 +49,7 @@ namespace lldb_private
typedef lldb::InstrumentationRuntimeType (*InstrumentationRuntimeGetType) ();
typedef lldb::InstrumentationRuntimeSP (*InstrumentationRuntimeCreateInstance) (const lldb::ProcessSP &process_sp);
typedef lldb::TypeSystemSP (*TypeSystemCreateInstance) (lldb::LanguageType language, Module *module, Target *target);
- typedef lldb::REPLSP (*REPLCreateInstance) (Error &error, lldb::LanguageType language, Target *target, const char *repl_options);
+ typedef lldb::REPLSP (*REPLCreateInstance) (Error &error, lldb::LanguageType language, Debugger *debugger, Target *target, const char *repl_options);
typedef void (*TypeSystemEnumerateSupportedLanguages) (std::set<lldb::LanguageType> &languages_for_types, std::set<lldb::LanguageType> &languages_for_expressions);
typedef int (*ComparisonFunction)(const void *, const void *);
typedef void (*DebuggerInitializeCallback)(Debugger &debugger);
Modified: lldb/trunk/source/Core/Debugger.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/Debugger.cpp?rev=250869&r1=250868&r2=250869&view=diff
==============================================================================
--- lldb/trunk/source/Core/Debugger.cpp (original)
+++ lldb/trunk/source/Core/Debugger.cpp Tue Oct 20 19:28:44 2015
@@ -1813,7 +1813,7 @@ Debugger::RunREPL (LanguageType language
Target *const target = nullptr; // passing in an empty target means the REPL must create one
- REPLSP repl_sp(REPL::Create(err, language, target, repl_options));
+ REPLSP repl_sp(REPL::Create(err, language, this, target, repl_options));
if (!err.Success())
{
Modified: lldb/trunk/source/Expression/REPL.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Expression/REPL.cpp?rev=250869&r1=250868&r2=250869&view=diff
==============================================================================
--- lldb/trunk/source/Expression/REPL.cpp (original)
+++ lldb/trunk/source/Expression/REPL.cpp Tue Oct 20 19:28:44 2015
@@ -23,14 +23,14 @@
using namespace lldb_private;
lldb::REPLSP
-REPL::Create(Error &err, lldb::LanguageType language, Target *target, const char *repl_options)
+REPL::Create(Error &err, lldb::LanguageType language, Debugger *debugger, Target *target, const char *repl_options)
{
uint32_t idx = 0;
lldb::REPLSP ret;
while (REPLCreateInstance create_instance = PluginManager::GetREPLCreateCallbackAtIndex(idx++))
{
- ret = (*create_instance)(err, language, target, repl_options);
+ ret = (*create_instance)(err, language, debugger, target, repl_options);
if (ret)
{
break;
Modified: lldb/trunk/source/Target/Target.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Target.cpp?rev=250869&r1=250868&r2=250869&view=diff
==============================================================================
--- lldb/trunk/source/Target/Target.cpp (original)
+++ lldb/trunk/source/Target/Target.cpp Tue Oct 20 19:28:44 2015
@@ -233,7 +233,8 @@ Target::GetREPL (Error &err, lldb::Langu
return lldb::REPLSP();
}
- lldb::REPLSP ret = REPL::Create(err, language, this, repl_options);
+ Debugger *const debugger = nullptr;
+ lldb::REPLSP ret = REPL::Create(err, language, debugger, this, repl_options);
if (ret)
{
More information about the lldb-commits
mailing list