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.py
In 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 file
class 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