Until now, we've debugged topologies using log messages and automated tests. These techniques are very powerful, but sometimes it may be necessary to debug directly inside the Storm environment. For example, the problem may:
Depend on running as a particular user
Occur only with real data
Occur only when there are many instances of the component running in parallel
This section introduces a tool for debugging inside Storm.
Winpdb is a portable, GUI-based debugger for Python, with support for embedded debugging. If you're not familiar with the term "embedded debugging", note this: it simply means that Winpdb can attach to a program that was launched in some other way and not necessarily from WinDbg or your command shell. For this reason, it is a good fit for debugging Petrel components that run in Storm.