summaryrefslogtreecommitdiffstats
path: root/docs/repro.md
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2019-10-24 21:14:12 -0400
committerGitHub <noreply@github.com>2019-10-24 21:14:12 -0400
commit3c57c86cdb2ae301441cf26a5bbe137e0b3bd512 (patch)
tree5d54121b3ca83790be8e89efc5fcd3faa1cc0134 /docs/repro.md
parent89ddb50eaccc1b7b590dbde55032721762711fb2 (diff)
* Functionality to dump repo if there is a failure throught the -dump-repro-on-failure option (#1095)
* Small typo fix
Diffstat (limited to 'docs/repro.md')
-rw-r--r--docs/repro.md3
1 files changed, 2 insertions, 1 deletions
diff --git a/docs/repro.md b/docs/repro.md
index cbdd88c2f..5e9070640 100644
--- a/docs/repro.md
+++ b/docs/repro.md
@@ -7,11 +7,12 @@ One use of the feature is if a compilation fails, or produces an unexpected or w
The actual data saved is the contents of the SlangCompileReqest. Currently no state is saved from the SlangSession. Saving and loading a SlangCompileRequest into a new SlangCompileRequest should provide two SlangCompileRequests with the same state, and with the second compile request having access to all the files contents the original request had directly in memory.
-There are 3 command line options
+There are a few command line options
* `-dump-repro [filename]` dumps the compilations state (ie post attempting to compile) to the file specified afterwards
* `-extract-repro [filename]` extracts the contents of the repro file. The contained files are placed in a directory with a name, the same as the repro file minus the extension. Also contains a 'manifest'.
* `-load-repro [filename]` loads the repro and compiles using it's options. Note this must be the last arg on the command line.
+* `-dump-repro-on-error` if a compilation fails will attempt to save a repro (using a filename generated from first source filename)
First it is worth just describing what is required to reproduce a compilation. Most straightforwardly the options setup for the compilation need to be stored. This would include any flags, and defines, include paths, entry points, input filenames and so forth. Also needed will be the contents of any files that were specified. This might be files on the file system, but could also be 'files' specified as strings through the slang API. Lastly we need any files that were referenced as part of the compilation - this could be include files, or module source files and so forth. All of this information is bundled up together into a file that can then later be loaded and compiled. This is broadly speaking all of the data that is stored within a repro file.