polyakov.alex updated this revision to Diff 151682.
polyakov.alex retitled this revision from "[lldb, lldb-mi] Add method
AddCurrentTargetSharedObjectPath to the SBDebugger." to "[WIP] New class
SBTargetSettings to store and manipulate all target's properties.".
polyakov.alex edited the summary of this revision.
polyakov.alex added a comment.
Herald added a subscriber: mgorny.
As we discussed previously, it would be nice to have a class in SB API that
will manipulate with SBTarget's properties.
I started to work on this and , as I expected, faced with a problem:
`TargetProperties` class doesn't have a property with image search paths while
`Target` does. It means that we should have a pointer to `Target` to implement
things like
`SBTargetSettings::AppendImageSearchPath(const char *from, const char *to,
SBError &error)`.
We may store an additional pointer to `Target`, but, as I understood, it's not
what we want from `SBTargetSettings` to be.
Moreover, it looks strange that image search path isn't a part of
`TargetProperties` while executable and debug file search paths are.
I'm looking forward for your comments about this.
https://reviews.llvm.org/D47302
Files:
include/lldb/API/SBTarget.h
include/lldb/API/SBTargetSettings.h
source/API/CMakeLists.txt
source/API/SBTargetSettings.cpp
Index: source/API/SBTargetSettings.cpp
===================================================================
--- /dev/null
+++ source/API/SBTargetSettings.cpp
@@ -0,0 +1,41 @@
+//===-- SBTargetSettings.cpp --------------------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "lldb/API/SBTargetSettings.h"
+
+#include "lldb/Target/Target.h"
+#include "lldb/Utility/Log.h"
+#include "llvm/Support/Casting.h"
+
+using namespace lldb;
+using namespace lldb_private;
+
+//----------------------------------------------------------------------
+// SBTargetSettings constructors
+//----------------------------------------------------------------------
+SBTargetSettings::SBTargetSettings() : m_opaque_sp() {}
+
+SBTargetSettings::SBTargetSettings(const lldb::SBTarget &sb_target)
+ : m_opaque_sp(sb_target.GetSP()) {}
+
+//----------------------------------------------------------------------
+// Destructor
+//----------------------------------------------------------------------
+SBTargetSettings::~SBTargetSettings() = default;
+
+void SBTargetSettings::AppendImageSearchPath(const char *from,
+ const char *to) {
+ SBError error;
+ AppendImageSearchPath(from, to, error);
+}
+
+void SBTargetSettings::AppendImageSearchPath(const char *from,
+ const char *to,
+ SBError &error) {
+}
Index: source/API/CMakeLists.txt
===================================================================
--- source/API/CMakeLists.txt
+++ source/API/CMakeLists.txt
@@ -63,6 +63,7 @@
SBSymbolContext.cpp
SBSymbolContextList.cpp
SBTarget.cpp
+ SBTargetSettings.cpp
SBThread.cpp
SBThreadCollection.cpp
SBThreadPlan.cpp
Index: include/lldb/API/SBTargetSettings.h
===================================================================
--- /dev/null
+++ include/lldb/API/SBTargetSettings.h
@@ -0,0 +1,50 @@
+//===-- SBTargetSettings.h ----------------------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLDB_SBTargetSettings_h_
+#define LLDB_SBTargetSettings_h_
+
+// C Includes
+// C++ Includes
+// Other libraries and framework includes
+// Project includes
+#include "lldb/API/SBTarget.h"
+#include "lldb/API/SBError.h"
+
+namespace lldb {
+
+class LLDB_API SBTargetSettings {
+public:
+ //------------------------------------------------------------------
+ // Constructors
+ //------------------------------------------------------------------
+ SBTargetSettings();
+
+ SBTargetSettings(const lldb::SBTarget &sb_target);
+
+ //------------------------------------------------------------------
+ // Destructor
+ //------------------------------------------------------------------
+ ~SBTargetSettings();
+
+ void AppendImageSearchPath(const char *from, const char *to);
+
+ void AppendImageSearchPath(const char *from, const char *to, SBError &error);
+
+ //size_t GetNumImageSearchPaths() const;
+
+ //const char *GetImageSearchPathAtIndex(size_t i);
+
+private:
+ lldb::TargetPropertiesSP m_opaque_sp;
+};
+
+} // namespace lldb
+
+#endif // LLDB_SBTargetSettings_h_
Index: include/lldb/API/SBTarget.h
===================================================================
--- include/lldb/API/SBTarget.h
+++ include/lldb/API/SBTarget.h
@@ -826,6 +826,7 @@
friend class SBSection;
friend class SBSourceManager;
friend class SBSymbol;
+ friend class SBTargetSettings;
friend class SBValue;
//------------------------------------------------------------------
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits