Author: Jonas Devlieghere Date: 2020-07-21T09:02:38-07:00 New Revision: 9f8d481d6816d620fc0a1f1c510f662c01fdacec
URL: https://github.com/llvm/llvm-project/commit/9f8d481d6816d620fc0a1f1c510f662c01fdacec DIFF: https://github.com/llvm/llvm-project/commit/9f8d481d6816d620fc0a1f1c510f662c01fdacec.diff LOG: [lldb/Reproducers] Don't recursively record everything in the CWD RecordInterestingDirectory was added to collect dSYM bundles and their content. For the current working directory we only want the directory to be part of the VFS, not necessarily its contents. This patch renames the current method to RecordInterestingDirectoryRecursively and adds a new one that's not recursive. Added: Modified: lldb/include/lldb/Utility/Reproducer.h lldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp lldb/source/Utility/Reproducer.cpp lldb/test/Shell/Reproducer/TestWorkingDir.test Removed: ################################################################################ diff --git a/lldb/include/lldb/Utility/Reproducer.h b/lldb/include/lldb/Utility/Reproducer.h index 6fcb839684dc..b3d470702ee5 100644 --- a/lldb/include/lldb/Utility/Reproducer.h +++ b/lldb/include/lldb/Utility/Reproducer.h @@ -101,6 +101,7 @@ class FileProvider : public Provider<FileProvider> { } void RecordInterestingDirectory(const llvm::Twine &dir); + void RecordInterestingDirectoryRecursive(const llvm::Twine &dir); void Keep() override { auto mapping = GetRoot().CopyByAppendingPathComponent(Info::file); diff --git a/lldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp b/lldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp index e510ee2d0225..336538241b6a 100644 --- a/lldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp +++ b/lldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp @@ -299,7 +299,7 @@ SymbolVendorMacOSX::CreateInstance(const lldb::ModuleSP &module_sp, if (repro::Generator *g = repro::Reproducer::Instance().GetGenerator()) { repro::FileProvider &fp = g->GetOrCreate<repro::FileProvider>(); - fp.RecordInterestingDirectory(dsym_root); + fp.RecordInterestingDirectoryRecursive(dsym_root); } } return symbol_vendor; diff --git a/lldb/source/Utility/Reproducer.cpp b/lldb/source/Utility/Reproducer.cpp index 46e909ecdba6..3ad1064cd4c4 100644 --- a/lldb/source/Utility/Reproducer.cpp +++ b/lldb/source/Utility/Reproducer.cpp @@ -300,6 +300,11 @@ void WorkingDirectoryProvider::Keep() { } void FileProvider::RecordInterestingDirectory(const llvm::Twine &dir) { + if (m_collector) + m_collector->addFile(dir); +} + +void FileProvider::RecordInterestingDirectoryRecursive(const llvm::Twine &dir) { if (m_collector) m_collector->addDirectory(dir); } diff --git a/lldb/test/Shell/Reproducer/TestWorkingDir.test b/lldb/test/Shell/Reproducer/TestWorkingDir.test index 76df41fbcbbf..92a9ccd7fc74 100644 --- a/lldb/test/Shell/Reproducer/TestWorkingDir.test +++ b/lldb/test/Shell/Reproducer/TestWorkingDir.test @@ -20,8 +20,13 @@ # referenced. # RUN: rm -rf %t.repro +# RUN: rm -rf %t # RUN: mkdir -p %t/probably_unique +# RUN: touch %t/probably_unique/dont_include_me # RUN: cd %t/probably_unique # RUN: %lldb -x -b -o 'reproducer generate' --capture --capture-path %t.repro # RUN: cat %t.repro/cwd.txt | FileCheck %s # CHECK: probably_unique +# RUN: cat %t.repro/files.yaml | FileCHeck %s --check-prefix VFS +# VFS: probably_unique +# VFS-NOT: dont_include_me _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits