A hybrid algorithmic debugger and program synthesis engine for Python
├── app.py ├── ast_transformer.py ├── coverage.dat ├── coverage.py ├── debugging_strategy.py ├── etnode.py ├── event.py ├── execution_tree.py ├── frontend │ ├── package.json │ ├── package-lock.json │ ├── public │ ├── README.md │ └── src │ ├── App.js │ ├── App.test.js │ ├── ColorModeSwitcher.js │ ├── index.js │ ├── Logo.js │ ├── logo.svg │ ├── reportWebVitals.js │ ├── serviceWorker.js │ ├── setupTests.js │ ├── test-utils.js │ ├── TreeView.js │ └── TreeViewMenu.js ├── grammar.py ├── oracle.py ├── program_repairer.py ├── pydd.py ├── pydd_repl.py ├── query.py ├── README.md ├── server.py ├── trace.dat ├── trace_iterator.py └── tracer.pyIn the frontend directory run:
Install all dependencies for client-side application.
In the parent (base) directory run:
./app.py -f ~/Desktop/bug1.py -d heaviest-first -pr bus
usage: app.py [options] app.py: error: the following arguments are required: -f, -d, -pr OPTIONS -f target file -i enable interactive debugging -w enable web mode -d debugging strategy -pr program repair strategy -t trace file -c coverage fileclass PyDDRepl. do_next(args)
class PyDDRepl. do_prev(args)
class PyDDRepl. do_print(args)
class PyDDRepl. do_break(args)
class PyDDRepl. do_watch(args)
class PyDDRepl. do_remove(args)
class PyDDRepl. do_continue(args)
class PyDDRepl. do_exit(args)
class PyDDRepl. do_list(args)
class PyDDRepl. do_repair(args)
class DebuggingStrategy. single_stepping
class DebuggingStrategy. top_down
class DebuggingStrategy. heaviest_first
class DebuggingStrategy. divide_and_query
class Grammar. bus
class Grammar. bfs
class Grammar. dfs