-
Notifications
You must be signed in to change notification settings - Fork 1
Home
These pages are here to explain what this debugger is, how it works, and why it exists. For specific commands on using the command-line interface provdb, visit the Using Provdb page. For a brief explanation into the internals of the debugger visit the Structure of the Debugger page.
Debugging with provenance is a type of postmortem debugging. A standard debugger typically pauses execution of a program or script during runtime. Rather than pause execution, tools such as noWorkflow or RDataTracker collect provenance while the program is running. After the program has completed its execution (whether that be gracefully or not), this tool can be used to analyze the provenance.
A user can explore this data in different ways. Currently, provdb is the best way to access the features of this debugger. This tool can reconstruct the execution of the program and then allow the user to step through it like a traditional debugger. When using this method, the user is also capable of stepping backward through their program. Additionally, the user has the capability of examining lineage or checking variable types automatically. These features are discussed more in-depth in their respective areas of the wiki.
Provdb exists as the current command-line interface to work with this debugger; however, developers can create interfaces and have access to more options by importing the ProvBrowser and ProvFunctions modules.
Conventional debuggers are written and used for one language only with very few exceptions. Provenance acts as a layer of abstraction between a language and the debugger. This layer allows this tool to analyze any provenance that follows the language-level format maintained by the End-to-End Provenance team. Currently, it is has been demonstrated to work with Python and R.
This project is an evolution of ProvDebugR. Scientists that collect provenance for their data analyses have more reproducible and transparent results. These projects build on this idea and allow scientists to reach their reproducible results more effectively by leveraging provenance.
Currently, provdb is the only interface to this debugger. Once invoked, a command-line interface is brought up. This interface is similar to that of a conventional command-line debugger. The debugger begins the reconstructed program at the earliest possible expression. The user can then step forward, backward, or query for information. For more in-depth detail, visit the Using Provdb page.