The author of Werkzeug wrote an article of how to use this debugger with GAE dev server. However according this article, the inline console is not usable.
After a little struggling, finally I can use the debugger on GAE dev server. GAE dev server creates an instance of DebuggedApplication on every request. I think its the reason why. So, it seems that specifying the instance as the module global singleton made it work.
_debugged_app = None
app = ... build your wsgi app ...
# Only run the debugger in development.
import os, sys
if 'SERVER_SOFTWARE' in os.environ and os.environ['SERVER_SOFTWARE'].startswith('Dev'):
# use our debug.utils with Jinja2 templates
sys.modules['werkzeug.debug.utils'] = debug.utils
# don't use inspect.getsourcefile because the imp module is empty
inspect.getsourcefile = inspect.getfile
# wrap the application
from werkzeug import DebuggedApplication
if _debugged_app is None:
_debugged_app = app = DebuggedApplication(app, evalex=True)
app = _debugged_app