Trigger a pdb in a running zope via a USR1 signal
This package allows one to perform various debugging and development actions on a running Zope instance. In order to perform an action one must:
- Insert a command into a special control file. To determine which file to look in, mr.freeze will take the Zope pid file and replace the extension with ‘.freeze’. So in a typical buildout the control file would be var/instance.freeze
- Send a USR1 signal to the Zope instance.
This pattern is intended to support integration with editors like TextMate and emacs, but that hasn’t been implemented yet.
The following commands are currently supported in both debug and non-debug mode.
- Will dump a stack backtrace for all threads to the console. (Default command if unable to read freeze file.)
- Will dump a pony to the console.
The following commands are supported in debug mode only.
- Will drop Zope to a pdb debug prompt.
- freeze [file] [line #]
- Will set a pdb breakpoint on the specified line.
The following commands are planned.
- reload code
- Will reload code that has been modified.
- reload zcml
- Will reload code and ZCML that has been modified.
- David Glick
- Andreas Zeidler
Thanks to those who have helped provide the foundation for this package:
- Products.signalstack: Wichert Akkerman
- Products.PDBDebugMode: Ross Patterson
- z3c.deadlockdebugger: Malthe Borch
- DeadlockDebugger: Florent Guillaume
- threadframe: Fazal Majid
- Fix the adjusted patch from 1.0a2 so that we actually return responses. :-> [davisagli]
- Be a little more careful about patching ZPublisher’s call_object, so that we can coexist with PDBDebugMode.
- Use canonical path of files passed to the freeze command.
- Fixes for TextMate integration script. [witsch]
- Add script to help integrate with TextMate. Please see http://dev.plone.org/collective/changeset/82128 for some preliminary info. [witsch]
- Initial release [davisagli]