Skip to content

mr-rodgers/ohoh

Repository files navigation

ohoh

build status License

OhOh is a debugger for your WSGI applications. Using OhOh, you can inspect the stack frames of a wsgi app that's thrown an exception.

Usage

Use this command to serve your wsgi app in debug mode:

> ohoh "package.module:wsgi_app" -s localost:5000

For a full range of options, see ohoh -h

OhOh provides a plug-in for the httpie utility. You can install httpie using pip install httpie. Once you send a request that results in an exception, you will enter the debugger automatically:

> http localhost:5000
HTTP/1.0 500 Internal Server Error
Date: Fri, 24 Jul 2015 23:41:20 GMT
Server: WSGIServer/0.2 CPython/3.4.2
Content-Type: text/plain; charset=utf-8
OhOh-Debug-Token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1N [Truncated (5061 chars) ...]
Location: http://localhost:5000/ohoh-debug/
Content-Length: 454

Traceback (most recent call last):
  File "c:\dev\ohoh\build\lib\ohoh\middleware.py", line 57, in __call__
    return self._app(environ, start_response)
  File "tests\mock_app.py", line 6, in simple_err_app
    path.join("foo bar", 475564)
  File "C:\Python34\lib\ntpath.py", line 110, in join
    p_drive, p_path = splitdrive(p)
  File "C:\Python34\lib\ntpath.py", line 159, in splitdrive
    if len(p) > 1:
TypeError: object of type 'int' has no len()
OhOh Interactive Debugger v0.1.dev28+n8ec9121
(odb) up
> c:\python34\lib\ntpath.py(110)join()
-> p_drive, p_path = splitdrive(p)
(odb)

Commands

The following commands are supported by the command interpreter (you can type help at the debugger prompt for online help with commands):

+-------------------+-----------------------------------------------------------+ + Command | Description + +===================+===========================================================+ + Client commands + +-------------------+-----------------------------------------------------------+ + quit | Exit the debugger. + +-------------------+-----------------------------------------------------------+ + token | View the current debug server token. + +-------------------+-----------------------------------------------------------+ + url | View or set the url to which debug requests are sent. + +-------------------+-----------------------------------------------------------+ + version | View the version number of the debugger. + +-------------------+-----------------------------------------------------------+ + Debug commands + +-------------------+-----------------------------------------------------------+ + ! | Execute a one-line statement in the current context. + +-------------------+-----------------------------------------------------------+ + args | Print the argument list to the current function. + +-------------------+-----------------------------------------------------------+ + p | Print the value of an expression. + +-------------------+-----------------------------------------------------------+ + pp | Pretty print the value of an expression. + +-------------------+-----------------------------------------------------------+ + where | Print the stack trace, with the most recent call last. + +-------------------+-----------------------------------------------------------+ + up | Move up one frame in the stack. + +-------------------+-----------------------------------------------------------+ + down | Move down one frame in the stack. + +-------------------+-----------------------------------------------------------+

About

A debug server for wsgi apps

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages