[Lldb-commits] [PATCH] D71372: [lldb] Add additional validation on return address in 'thread step-out'

2019-12-15 Thread Mark Mossberg via Phabricator via lldb-commits
mossberg added a comment.

I wanted to also mention that this patch won't address buggy behavior if, for 
example, the stub takes a function pointer on the stack (vs a normal data 
pointer). In this case, the executable check will succeed, and the breakpoint 
will be written, but to a potentially arbitrary code address. This may or may 
not lead to the debugger "randomly" breaking out later in a debug session if or 
when that code happens to be executed (I've reproduced this, but also seen some 
very confusing behavior where in some situations the breakpoint logging will 
say a breakpoint is written, but it doesn't seem like this was actually the 
case.)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D71372/new/

https://reviews.llvm.org/D71372



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D71398: [lldb] Remove RTTI in ClangExternalASTSourceCommon based on a global map of known instances

2019-12-15 Thread Raphael Isemann via Phabricator via lldb-commits
teemperor updated this revision to Diff 233984.
teemperor added a comment.

- Rebased.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D71398/new/

https://reviews.llvm.org/D71398

Files:
  lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h
  lldb/source/Symbol/ClangASTContext.cpp
  lldb/source/Symbol/ClangExternalASTSourceCommon.cpp

Index: lldb/source/Symbol/ClangExternalASTSourceCommon.cpp
===
--- lldb/source/Symbol/ClangExternalASTSourceCommon.cpp
+++ lldb/source/Symbol/ClangExternalASTSourceCommon.cpp
@@ -13,43 +13,9 @@
 
 using namespace lldb_private;
 
-typedef llvm::DenseMap
-ASTSourceMap;
+char ClangExternalASTSourceCommon::ID;
 
-static ASTSourceMap &GetSourceMap(std::unique_lock &guard) {
-  // Intentionally leaked to avoid problems with global destructors.
-  static ASTSourceMap *s_source_map = new ASTSourceMap;
-  static std::mutex s_mutex;
-  std::unique_lock locked_guard(s_mutex);
-  guard.swap(locked_guard);
-  return *s_source_map;
-}
-
-ClangExternalASTSourceCommon *
-ClangExternalASTSourceCommon::Lookup(clang::ExternalASTSource *source) {
-  std::unique_lock guard;
-  ASTSourceMap &source_map = GetSourceMap(guard);
-
-  ASTSourceMap::iterator iter = source_map.find(source);
-
-  if (iter != source_map.end()) {
-return iter->second;
-  } else {
-return nullptr;
-  }
-}
-
-ClangExternalASTSourceCommon::ClangExternalASTSourceCommon()
-: clang::ExternalASTSource() {
-  std::unique_lock guard;
-  GetSourceMap(guard)[this] = this;
-}
-
-ClangExternalASTSourceCommon::~ClangExternalASTSourceCommon() {
-  std::unique_lock guard;
-  GetSourceMap(guard).erase(this);
-}
+ClangExternalASTSourceCommon::~ClangExternalASTSourceCommon() {}
 
 ClangASTMetadata *
 ClangExternalASTSourceCommon::GetMetadata(const clang::Decl *object) {
Index: lldb/source/Symbol/ClangASTContext.cpp
===
--- lldb/source/Symbol/ClangASTContext.cpp
+++ lldb/source/Symbol/ClangASTContext.cpp
@@ -2414,41 +2414,31 @@
 
 void ClangASTContext::SetMetadata(const clang::Decl *object,
   ClangASTMetadata &metadata) {
-  ClangExternalASTSourceCommon *external_source =
-  ClangExternalASTSourceCommon::Lookup(
-  getASTContext()->getExternalSource());
-
-  if (external_source)
-external_source->SetMetadata(object, metadata);
+  if (auto *A = llvm::dyn_cast_or_null(
+  getASTContext()->getExternalSource()))
+A->SetMetadata(object, metadata);
 }
 
 void ClangASTContext::SetMetadata(const clang::Type *object,
   ClangASTMetadata &metadata) {
-  ClangExternalASTSourceCommon *external_source =
-  ClangExternalASTSourceCommon::Lookup(
-  getASTContext()->getExternalSource());
-
-  if (external_source)
-external_source->SetMetadata(object, metadata);
+  if (auto *A = llvm::dyn_cast_or_null(
+  getASTContext()->getExternalSource()))
+A->SetMetadata(object, metadata);
 }
 
 ClangASTMetadata *ClangASTContext::GetMetadata(clang::ASTContext *ast,
const clang::Decl *object) {
-  ClangExternalASTSourceCommon *external_source =
-  ClangExternalASTSourceCommon::Lookup(ast->getExternalSource());
-
-  if (external_source)
-return external_source->GetMetadata(object);
+  if (auto *A = llvm::dyn_cast_or_null(
+  ast->getExternalSource()))
+return A->GetMetadata(object);
   return nullptr;
 }
 
 ClangASTMetadata *ClangASTContext::GetMetadata(clang::ASTContext *ast,
const clang::Type *object) {
-  ClangExternalASTSourceCommon *external_source =
-  ClangExternalASTSourceCommon::Lookup(ast->getExternalSource());
-
-  if (external_source)
-return external_source->GetMetadata(object);
+  if (auto *A = llvm::dyn_cast_or_null(
+  ast->getExternalSource()))
+return A->GetMetadata(object);
   return nullptr;
 }
 
Index: lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h
===
--- lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h
+++ lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h
@@ -122,8 +122,11 @@
 };
 
 class ClangExternalASTSourceCommon : public clang::ExternalASTSource {
+
+  /// LLVM-style RTTI.
+  static char ID;
+
 public:
-  ClangExternalASTSourceCommon();
   ~ClangExternalASTSourceCommon() override;
 
   ClangASTMetadata *GetMetadata(const clang::Decl *object);
@@ -138,8 +141,13 @@
 m_type_metadata[object] = metadata;
   }
 
-  static ClangExternalASTSourceCommon *Lookup(clang::ExternalASTSource *source);
-
+  /// LLVM-style RTTI.
+  /// \{
+  bool isA(const void *ClassID) const override {
+return ClassID == &ID || ExternalASTSource::isA(ClassID);
+  }
+  static bool classof(const ExternalASTSource *S) { return S->isA(&ID); }
+  /// \}
 private:
   typedef llvm::Dense

[Lldb-commits] [lldb] 8280896 - [lldb] Remove RTTI in ClangExternalASTSourceCommon based on a global map of known instances

2019-12-15 Thread Raphael Isemann via lldb-commits

Author: Raphael Isemann
Date: 2019-12-15T22:39:50+01:00
New Revision: 8280896bd1b055a192d9e7d482b0ffa14ee88e3a

URL: 
https://github.com/llvm/llvm-project/commit/8280896bd1b055a192d9e7d482b0ffa14ee88e3a
DIFF: 
https://github.com/llvm/llvm-project/commit/8280896bd1b055a192d9e7d482b0ffa14ee88e3a.diff

LOG: [lldb] Remove RTTI in ClangExternalASTSourceCommon based on a global map 
of known instances

Summary:
Currently we do our RTTI check for ClangExternalASTSourceCommon by using this 
global map of
ClangExternalASTSourceCommon where every instance is registering and 
deregistering itself
on creation/destruction. Then we can do the RTTI check by looking up in this 
map from ClangASTContext.

This patch removes this whole thing and just adds LLVM-style RTTI support to 
ClangExternalASTSourceCommon
which is possible with D71397.

Reviewers: labath, aprantl

Reviewed By: labath

Subscribers: JDevlieghere, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D71398

Added: 


Modified: 
lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h
lldb/source/Symbol/ClangASTContext.cpp
lldb/source/Symbol/ClangExternalASTSourceCommon.cpp

Removed: 




diff  --git a/lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h 
b/lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h
index e7dd94d28286..5da486540bb9 100644
--- a/lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h
+++ b/lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h
@@ -122,8 +122,11 @@ class ClangASTMetadata {
 };
 
 class ClangExternalASTSourceCommon : public clang::ExternalASTSource {
+
+  /// LLVM-style RTTI.
+  static char ID;
+
 public:
-  ClangExternalASTSourceCommon();
   ~ClangExternalASTSourceCommon() override;
 
   ClangASTMetadata *GetMetadata(const clang::Decl *object);
@@ -138,8 +141,13 @@ class ClangExternalASTSourceCommon : public 
clang::ExternalASTSource {
 m_type_metadata[object] = metadata;
   }
 
-  static ClangExternalASTSourceCommon *Lookup(clang::ExternalASTSource 
*source);
-
+  /// LLVM-style RTTI.
+  /// \{
+  bool isA(const void *ClassID) const override {
+return ClassID == &ID || ExternalASTSource::isA(ClassID);
+  }
+  static bool classof(const ExternalASTSource *S) { return S->isA(&ID); }
+  /// \}
 private:
   typedef llvm::DenseMap 
DeclMetadataMap;
   typedef llvm::DenseMap 
TypeMetadataMap;

diff  --git a/lldb/source/Symbol/ClangASTContext.cpp 
b/lldb/source/Symbol/ClangASTContext.cpp
index 2576a372076c..ed613528a2f4 100644
--- a/lldb/source/Symbol/ClangASTContext.cpp
+++ b/lldb/source/Symbol/ClangASTContext.cpp
@@ -2414,41 +2414,31 @@ void ClangASTContext::SetMetadataAsUserID(const 
clang::Type *type,
 
 void ClangASTContext::SetMetadata(const clang::Decl *object,
   ClangASTMetadata &metadata) {
-  ClangExternalASTSourceCommon *external_source =
-  ClangExternalASTSourceCommon::Lookup(
-  getASTContext()->getExternalSource());
-
-  if (external_source)
-external_source->SetMetadata(object, metadata);
+  if (auto *A = llvm::dyn_cast_or_null(
+  getASTContext()->getExternalSource()))
+A->SetMetadata(object, metadata);
 }
 
 void ClangASTContext::SetMetadata(const clang::Type *object,
   ClangASTMetadata &metadata) {
-  ClangExternalASTSourceCommon *external_source =
-  ClangExternalASTSourceCommon::Lookup(
-  getASTContext()->getExternalSource());
-
-  if (external_source)
-external_source->SetMetadata(object, metadata);
+  if (auto *A = llvm::dyn_cast_or_null(
+  getASTContext()->getExternalSource()))
+A->SetMetadata(object, metadata);
 }
 
 ClangASTMetadata *ClangASTContext::GetMetadata(clang::ASTContext *ast,
const clang::Decl *object) {
-  ClangExternalASTSourceCommon *external_source =
-  ClangExternalASTSourceCommon::Lookup(ast->getExternalSource());
-
-  if (external_source)
-return external_source->GetMetadata(object);
+  if (auto *A = llvm::dyn_cast_or_null(
+  ast->getExternalSource()))
+return A->GetMetadata(object);
   return nullptr;
 }
 
 ClangASTMetadata *ClangASTContext::GetMetadata(clang::ASTContext *ast,
const clang::Type *object) {
-  ClangExternalASTSourceCommon *external_source =
-  ClangExternalASTSourceCommon::Lookup(ast->getExternalSource());
-
-  if (external_source)
-return external_source->GetMetadata(object);
+  if (auto *A = llvm::dyn_cast_or_null(
+  ast->getExternalSource()))
+return A->GetMetadata(object);
   return nullptr;
 }
 

diff  --git a/lldb/source/Symbol/ClangExternalASTSourceCommon.cpp 
b/lldb/source/Symbol/ClangExternalASTSourceCommon.cpp
index 66fb4f3b3f05..be015da872d0 100644
--- a/lldb/source/Symbol/ClangExternalASTSourceCommon.cpp
+++ b/lldb/source/Symbol/ClangExternalASTSourceCommon.cp

[Lldb-commits] [PATCH] D71398: [lldb] Remove RTTI in ClangExternalASTSourceCommon based on a global map of known instances

2019-12-15 Thread Raphael Isemann via Phabricator via lldb-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rG8280896bd1b0: [lldb] Remove RTTI in 
ClangExternalASTSourceCommon based on a global map of… (authored by teemperor).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D71398/new/

https://reviews.llvm.org/D71398

Files:
  lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h
  lldb/source/Symbol/ClangASTContext.cpp
  lldb/source/Symbol/ClangExternalASTSourceCommon.cpp

Index: lldb/source/Symbol/ClangExternalASTSourceCommon.cpp
===
--- lldb/source/Symbol/ClangExternalASTSourceCommon.cpp
+++ lldb/source/Symbol/ClangExternalASTSourceCommon.cpp
@@ -13,43 +13,9 @@
 
 using namespace lldb_private;
 
-typedef llvm::DenseMap
-ASTSourceMap;
+char ClangExternalASTSourceCommon::ID;
 
-static ASTSourceMap &GetSourceMap(std::unique_lock &guard) {
-  // Intentionally leaked to avoid problems with global destructors.
-  static ASTSourceMap *s_source_map = new ASTSourceMap;
-  static std::mutex s_mutex;
-  std::unique_lock locked_guard(s_mutex);
-  guard.swap(locked_guard);
-  return *s_source_map;
-}
-
-ClangExternalASTSourceCommon *
-ClangExternalASTSourceCommon::Lookup(clang::ExternalASTSource *source) {
-  std::unique_lock guard;
-  ASTSourceMap &source_map = GetSourceMap(guard);
-
-  ASTSourceMap::iterator iter = source_map.find(source);
-
-  if (iter != source_map.end()) {
-return iter->second;
-  } else {
-return nullptr;
-  }
-}
-
-ClangExternalASTSourceCommon::ClangExternalASTSourceCommon()
-: clang::ExternalASTSource() {
-  std::unique_lock guard;
-  GetSourceMap(guard)[this] = this;
-}
-
-ClangExternalASTSourceCommon::~ClangExternalASTSourceCommon() {
-  std::unique_lock guard;
-  GetSourceMap(guard).erase(this);
-}
+ClangExternalASTSourceCommon::~ClangExternalASTSourceCommon() {}
 
 ClangASTMetadata *
 ClangExternalASTSourceCommon::GetMetadata(const clang::Decl *object) {
Index: lldb/source/Symbol/ClangASTContext.cpp
===
--- lldb/source/Symbol/ClangASTContext.cpp
+++ lldb/source/Symbol/ClangASTContext.cpp
@@ -2414,41 +2414,31 @@
 
 void ClangASTContext::SetMetadata(const clang::Decl *object,
   ClangASTMetadata &metadata) {
-  ClangExternalASTSourceCommon *external_source =
-  ClangExternalASTSourceCommon::Lookup(
-  getASTContext()->getExternalSource());
-
-  if (external_source)
-external_source->SetMetadata(object, metadata);
+  if (auto *A = llvm::dyn_cast_or_null(
+  getASTContext()->getExternalSource()))
+A->SetMetadata(object, metadata);
 }
 
 void ClangASTContext::SetMetadata(const clang::Type *object,
   ClangASTMetadata &metadata) {
-  ClangExternalASTSourceCommon *external_source =
-  ClangExternalASTSourceCommon::Lookup(
-  getASTContext()->getExternalSource());
-
-  if (external_source)
-external_source->SetMetadata(object, metadata);
+  if (auto *A = llvm::dyn_cast_or_null(
+  getASTContext()->getExternalSource()))
+A->SetMetadata(object, metadata);
 }
 
 ClangASTMetadata *ClangASTContext::GetMetadata(clang::ASTContext *ast,
const clang::Decl *object) {
-  ClangExternalASTSourceCommon *external_source =
-  ClangExternalASTSourceCommon::Lookup(ast->getExternalSource());
-
-  if (external_source)
-return external_source->GetMetadata(object);
+  if (auto *A = llvm::dyn_cast_or_null(
+  ast->getExternalSource()))
+return A->GetMetadata(object);
   return nullptr;
 }
 
 ClangASTMetadata *ClangASTContext::GetMetadata(clang::ASTContext *ast,
const clang::Type *object) {
-  ClangExternalASTSourceCommon *external_source =
-  ClangExternalASTSourceCommon::Lookup(ast->getExternalSource());
-
-  if (external_source)
-return external_source->GetMetadata(object);
+  if (auto *A = llvm::dyn_cast_or_null(
+  ast->getExternalSource()))
+return A->GetMetadata(object);
   return nullptr;
 }
 
Index: lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h
===
--- lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h
+++ lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h
@@ -122,8 +122,11 @@
 };
 
 class ClangExternalASTSourceCommon : public clang::ExternalASTSource {
+
+  /// LLVM-style RTTI.
+  static char ID;
+
 public:
-  ClangExternalASTSourceCommon();
   ~ClangExternalASTSourceCommon() override;
 
   ClangASTMetadata *GetMetadata(const clang::Decl *object);
@@ -138,8 +141,13 @@
 m_type_metadata[object] = metadata;
   }
 
-  static ClangExternalASTSourceCommon *Lookup(clang::ExternalASTSource *source);
-
+  /// LLVM-style RTTI.
+  /// \{
+  bool isA(const void *ClassID) const override {
+return ClassID == &

[Lldb-commits] [PATCH] D71487: [LLDB] Fix address computation for member function linked with lld

2019-12-15 Thread Greg Clayton via Phabricator via lldb-commits
clayborg added a comment.

Can you attach a paste of the DWARF that is emitted by lld and the symbol table 
and annotate which one should be picked. I am having trouble understanding what 
the right solution for this fix would be. It makes me nervous to require a 
symbol in the symbol table since symbol tables can be stripped from binaries.




Comment at: lldb/source/Expression/IRExecutionUnit.cpp:833-835
+// Keep looking for a function entry with a symbol.
+if (candidate_sc.function && !candidate_sc.symbol)
+continue;

Debug info can be in an executable and the symbol can be stripped. Not sure 
this is safe to require a symbol? 


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D71487/new/

https://reviews.llvm.org/D71487



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [lldb] e2d4761 - [lldb][NFC] Replace ClangASTImporter's use of map/set with SmallPtrSet and DenseMap

2019-12-15 Thread Raphael Isemann via lldb-commits

Author: Raphael Isemann
Date: 2019-12-16T08:29:14+01:00
New Revision: e2d47614a81d0805a869e6141512e0136da9

URL: 
https://github.com/llvm/llvm-project/commit/e2d47614a81d0805a869e6141512e0136da9
DIFF: 
https://github.com/llvm/llvm-project/commit/e2d47614a81d0805a869e6141512e0136da9.diff

LOG: [lldb][NFC] Replace ClangASTImporter's use of map/set with SmallPtrSet and 
DenseMap

We have several pointer->pointer mappings in the ClangASTImporter implemented 
using
STL data structures. This moves these variables to the appropriate LLVM data 
structures
that are intended for mapping pointers.

Added: 


Modified: 
lldb/include/lldb/Symbol/ClangASTImporter.h
lldb/source/Symbol/ClangASTImporter.cpp

Removed: 




diff  --git a/lldb/include/lldb/Symbol/ClangASTImporter.h 
b/lldb/include/lldb/Symbol/ClangASTImporter.h
index a67b698ef490..098091f7167f 100644
--- a/lldb/include/lldb/Symbol/ClangASTImporter.h
+++ b/lldb/include/lldb/Symbol/ClangASTImporter.h
@@ -182,7 +182,7 @@ class ClangASTImporter {
 clang::Decl *decl;
   };
 
-  typedef std::map OriginMap;
+  typedef llvm::DenseMap OriginMap;
 
   /// Listener interface used by the ASTImporterDelegate to inform other code
   /// about decls that have been imported the first time.
@@ -262,7 +262,7 @@ class ClangASTImporter {
 /// ASTContext. Used by the CxxModuleHandler to mark declarations that
 /// were created from the 'std' C++ module to prevent that the Importer
 /// tries to sync them with the broken equivalent in the debug info AST.
-std::set m_decls_to_ignore;
+llvm::SmallPtrSet m_decls_to_ignore;
 ClangASTImporter &m_master;
 clang::ASTContext *m_source_ctx;
 CxxModuleHandler *m_std_handler = nullptr;
@@ -271,8 +271,8 @@ class ClangASTImporter {
   };
 
   typedef std::shared_ptr ImporterDelegateSP;
-  typedef std::map DelegateMap;
-  typedef std::map
+  typedef llvm::DenseMap DelegateMap;
+  typedef llvm::DenseMap
   NamespaceMetaMap;
 
   struct ASTContextMetadata {
@@ -289,7 +289,7 @@ class ClangASTImporter {
   };
 
   typedef std::shared_ptr ASTContextMetadataSP;
-  typedef std::map
+  typedef llvm::DenseMap
   ContextMetadataMap;
 
   ContextMetadataMap m_metadata_map;

diff  --git a/lldb/source/Symbol/ClangASTImporter.cpp 
b/lldb/source/Symbol/ClangASTImporter.cpp
index 8b1c6c8f815e..80c5c4a6f345 100644
--- a/lldb/source/Symbol/ClangASTImporter.cpp
+++ b/lldb/source/Symbol/ClangASTImporter.cpp
@@ -121,7 +121,7 @@ class DeclContextOverride {
 clang::DeclContext *lexical_decl_context;
   };
 
-  std::map m_backups;
+  llvm::DenseMap m_backups;
 
   void OverrideOne(clang::Decl *decl) {
 if (m_backups.find(decl) != m_backups.end()) {
@@ -228,10 +228,8 @@ namespace {
 /// imported while completing the original Decls).
 class CompleteTagDeclsScope : public ClangASTImporter::NewDeclListener {
   ClangASTImporter::ImporterDelegateSP m_delegate;
-  // FIXME: Investigate how many decls we usually have in these sets and
-  // see if we can use SmallPtrSet instead here.
-  std::set m_decls_to_complete;
-  std::set m_decls_already_completed;
+  llvm::SmallPtrSet m_decls_to_complete;
+  llvm::SmallPtrSet m_decls_already_completed;
   clang::ASTContext *m_dst_ctx;
   clang::ASTContext *m_src_ctx;
   ClangASTImporter &importer;



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [lldb] 0683250 - [lldb][NFC] Remove unnecessary includes in source/Commands

2019-12-15 Thread Raphael Isemann via lldb-commits

Author: Raphael Isemann
Date: 2019-12-16T08:59:08+01:00
New Revision: 068325012796bf2da527612ea6fdc61531c8beb3

URL: 
https://github.com/llvm/llvm-project/commit/068325012796bf2da527612ea6fdc61531c8beb3
DIFF: 
https://github.com/llvm/llvm-project/commit/068325012796bf2da527612ea6fdc61531c8beb3.diff

LOG: [lldb][NFC] Remove unnecessary includes in source/Commands

Summary: This removes most of unnecessary includes in the `source/Commands` 
directory. This was generated by IWYU and a script that fixed all the bogus 
reports from IWYU. Patch is tested on Linux and macOS.

Reviewers: JDevlieghere

Reviewed By: JDevlieghere

Subscribers: krytarowski, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D71489

Added: 


Modified: 
lldb/source/Commands/CommandCompletions.cpp
lldb/source/Commands/CommandObjectApropos.cpp
lldb/source/Commands/CommandObjectBreakpoint.cpp
lldb/source/Commands/CommandObjectBreakpoint.h
lldb/source/Commands/CommandObjectBreakpointCommand.cpp
lldb/source/Commands/CommandObjectBreakpointCommand.h
lldb/source/Commands/CommandObjectCommands.cpp
lldb/source/Commands/CommandObjectCommands.h
lldb/source/Commands/CommandObjectDisassemble.cpp
lldb/source/Commands/CommandObjectExpression.cpp
lldb/source/Commands/CommandObjectExpression.h
lldb/source/Commands/CommandObjectFrame.cpp
lldb/source/Commands/CommandObjectFrame.h
lldb/source/Commands/CommandObjectGUI.cpp
lldb/source/Commands/CommandObjectHelp.cpp
lldb/source/Commands/CommandObjectLanguage.cpp
lldb/source/Commands/CommandObjectLanguage.h
lldb/source/Commands/CommandObjectLog.cpp
lldb/source/Commands/CommandObjectLog.h
lldb/source/Commands/CommandObjectMemory.cpp
lldb/source/Commands/CommandObjectMultiword.cpp
lldb/source/Commands/CommandObjectPlatform.cpp
lldb/source/Commands/CommandObjectPlatform.h
lldb/source/Commands/CommandObjectPlugin.cpp
lldb/source/Commands/CommandObjectPlugin.h
lldb/source/Commands/CommandObjectProcess.cpp
lldb/source/Commands/CommandObjectRegister.cpp
lldb/source/Commands/CommandObjectReproducer.cpp
lldb/source/Commands/CommandObjectReproducer.h
lldb/source/Commands/CommandObjectSettings.h
lldb/source/Commands/CommandObjectSource.cpp
lldb/source/Commands/CommandObjectSource.h
lldb/source/Commands/CommandObjectStats.cpp
lldb/source/Commands/CommandObjectStats.h
lldb/source/Commands/CommandObjectTarget.cpp
lldb/source/Commands/CommandObjectTarget.h
lldb/source/Commands/CommandObjectThread.cpp
lldb/source/Commands/CommandObjectType.cpp
lldb/source/Commands/CommandObjectType.h
lldb/source/Commands/CommandObjectVersion.cpp
lldb/source/Commands/CommandObjectWatchpoint.cpp
lldb/source/Commands/CommandObjectWatchpoint.h
lldb/source/Commands/CommandObjectWatchpointCommand.cpp
lldb/source/Commands/CommandObjectWatchpointCommand.h

Removed: 




diff  --git a/lldb/source/Commands/CommandCompletions.cpp 
b/lldb/source/Commands/CommandCompletions.cpp
index b382e26e2b70..d9bee66b442a 100644
--- a/lldb/source/Commands/CommandCompletions.cpp
+++ b/lldb/source/Commands/CommandCompletions.cpp
@@ -6,11 +6,6 @@
 //
 
//===--===//
 
-#include 
-#if defined(__APPLE__) || defined(__linux__)
-#include 
-#endif
-
 #include "llvm/ADT/SmallString.h"
 #include "llvm/ADT/StringSet.h"
 
@@ -23,13 +18,10 @@
 #include "lldb/Interpreter/OptionValueProperties.h"
 #include "lldb/Symbol/CompileUnit.h"
 #include "lldb/Symbol/Variable.h"
-#include "lldb/Target/Target.h"
-#include "lldb/Utility/Args.h"
 #include "lldb/Utility/FileSpec.h"
 #include "lldb/Utility/StreamString.h"
 #include "lldb/Utility/TildeExpressionResolver.h"
 
-#include "llvm/ADT/SmallString.h"
 #include "llvm/Support/FileSystem.h"
 #include "llvm/Support/Path.h"
 

diff  --git a/lldb/source/Commands/CommandObjectApropos.cpp 
b/lldb/source/Commands/CommandObjectApropos.cpp
index 7ba0b250fbd5..15a20737273d 100644
--- a/lldb/source/Commands/CommandObjectApropos.cpp
+++ b/lldb/source/Commands/CommandObjectApropos.cpp
@@ -10,7 +10,6 @@
 #include "CommandObjectApropos.h"
 #include "lldb/Interpreter/CommandInterpreter.h"
 #include "lldb/Interpreter/CommandReturnObject.h"
-#include "lldb/Interpreter/Options.h"
 #include "lldb/Interpreter/Property.h"
 #include "lldb/Utility/Args.h"
 

diff  --git a/lldb/source/Commands/CommandObjectBreakpoint.cpp 
b/lldb/source/Commands/CommandObjectBreakpoint.cpp
index 380f753ea339..7c4c50ecf3f9 100644
--- a/lldb/source/Commands/CommandObjectBreakpoint.cpp
+++ b/lldb/source/Commands/CommandObjectBreakpoint.cpp
@@ -12,7 +12,6 @@
 #include "lldb/Breakpoint/BreakpointIDList.h"
 #include "lldb/Breakpoint/BreakpointLocation.h"
 #include "lldb/Host/OptionParser.h"
-#include "lldb/Interpreter/CommandCompletions.h