llvm-project/lldb/source/Host
Jonas Devlieghere 46575176e9 [Reproducers] Add file provider
This patch adds the file provider which is responsible for capturing
files used by LLDB.

When capturing a reproducer, we use a file collector that is very
similar to the one used in clang. For every file that we touch, we add
an entry with a mapping from its virtual to its real path. When we
decide to generate a reproducer we copy over the files and their
permission into to reproducer folder.

When replaying a reproducer, we load the VFS mapping and instantiate a
RedirectingFileSystem. The latter will transparently use the files
available in the reproducer.

I've tested this on two macOS machines with an artificial example.
Still, it is very likely that I missed some places where we (still) use
native file system calls. I'm hoping to flesh those out while testing
with more advanced examples. However, I will fix those things in
separate patches.

Differential revision: https://reviews.llvm.org/D54617

llvm-svn: 352538
2019-01-29 20:36:38 +00:00
..
android Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
common [Reproducers] Add file provider 2019-01-29 20:36:38 +00:00
freebsd Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
linux Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
macosx [Reproducers] Add file provider 2019-01-29 20:36:38 +00:00
netbsd Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
openbsd Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
posix Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
windows Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CMakeLists.txt [CMake] Pass full libedit path to linker 2018-11-27 19:41:30 +00:00