diff options
author | Jonas Devlieghere <jonas@devlieghere.com> | 2019-01-29 20:36:38 +0000 |
---|---|---|
committer | Jonas Devlieghere <jonas@devlieghere.com> | 2019-01-29 20:36:38 +0000 |
commit | 46575176e9642e9f8567e75e05a98867396803cc (patch) | |
tree | 0572584914eb135af50920d5bb3a3faebb7e5911 /clang/lib/AST/FormatString.cpp | |
parent | 6159e8693ea182078a509b197373fab2127ecd66 (diff) | |
download | bcm5719-llvm-46575176e9642e9f8567e75e05a98867396803cc.tar.gz bcm5719-llvm-46575176e9642e9f8567e75e05a98867396803cc.zip |
[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
Diffstat (limited to 'clang/lib/AST/FormatString.cpp')
0 files changed, 0 insertions, 0 deletions