Skip to content

Repository files navigation

PyDD

A hybrid algorithmic debugger and program synthesis engine for Python

Repository structure

├── 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

Installation

In the frontend directory run:

npm install

Install all dependencies for client-side application.

In the parent (base) directory run:

pip install tornado dill astor pygments rich astor astunparse textwrap

Usage:

./app.py -f ~/Desktop/bug1.py -d heaviest-first -pr bus

CLI
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

Debug commands

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)

Debugging strategies

class DebuggingStrategy. single_stepping

class DebuggingStrategy. top_down

class DebuggingStrategy. heaviest_first

class DebuggingStrategy. divide_and_query

Program repair strategies

class Grammar. bus

class Grammar. bfs

class Grammar. dfs

About

A hybrid algorithmic debugger and program synthesis engine for Python

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages