On Tue, Jul 21, 2020 at 5:06 AM Pavel Labath <pa...@labath.sk> wrote:
> On 20/07/2020 20:54, Jonas Devlieghere via lldb-commits wrote: > > > > Author: Jonas Devlieghere > > Date: 2020-07-20T11:54:11-07:00 > > New Revision: f8df2e1a19913e997d8d6dbe573de977406e736e > > > > URL: > https://github.com/llvm/llvm-project/commit/f8df2e1a19913e997d8d6dbe573de977406e736e > > DIFF: > https://github.com/llvm/llvm-project/commit/f8df2e1a19913e997d8d6dbe573de977406e736e.diff > > > > LOG: [lldb/Reproducers] Always record the current working directory > > > > Setting the current working directory in the VFS will fail if the given > > path doesn't exist in the YAML mapping or on disk. > > > > Added: > > > > > > Modified: > > lldb/include/lldb/Utility/Reproducer.h > > lldb/source/API/SBReproducer.cpp > > lldb/source/Initialization/SystemInitializerCommon.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 2714db8d2932..6fcb839684dc 100644 > > --- a/lldb/include/lldb/Utility/Reproducer.h > > +++ b/lldb/include/lldb/Utility/Reproducer.h > > @@ -11,6 +11,7 @@ > > > > #include "lldb/Utility/FileSpec.h" > > #include "llvm/ADT/DenseMap.h" > > +#include "llvm/ADT/StringRef.h" > > #include "llvm/Support/Error.h" > > #include "llvm/Support/FileCollector.h" > > #include "llvm/Support/YAMLTraits.h" > > @@ -149,6 +150,7 @@ class WorkingDirectoryProvider : public > Provider<WorkingDirectoryProvider> { > > } > > > > void Update(llvm::StringRef path) { m_cwd = std::string(path); } > > + llvm::StringRef GetWorkingDirectory() { return m_cwd; } > > > > struct Info { > > static const char *name; > > > > diff --git a/lldb/source/API/SBReproducer.cpp > b/lldb/source/API/SBReproducer.cpp > > index 0eb3429c4fef..9815bf11263c 100644 > > --- a/lldb/source/API/SBReproducer.cpp > > +++ b/lldb/source/API/SBReproducer.cpp > > @@ -234,7 +234,10 @@ const char *SBReproducer::GetPath() { > > > > void SBReproducer::SetWorkingDirectory(const char *path) { > > if (auto *g = > lldb_private::repro::Reproducer::Instance().GetGenerator()) { > > - g->GetOrCreate<WorkingDirectoryProvider>().Update(path); > > + auto &wp = g->GetOrCreate<repro::WorkingDirectoryProvider>(); > > + wp.Update(path); > > + auto &fp = g->GetOrCreate<repro::FileProvider>(); > > + fp.RecordInterestingDirectory(wp.GetWorkingDirectory()); > > > If I'm not mistaken, this will (recursively) record the entire contents > of the CWD. That could be a _lot_. Are you that's what you wanted? > Most certainly not. Thanks for pointing that out. Fixed with a test case in 9f8d481d6816d620fc0a1f1c510f662c01fdacec. > > pl >
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits