Problems Handling Values

Index of All Documentation » Wing Pro Reference Manual » Debugger » Viewing Debug Data »

The Wing debugger tries to handle debug data as gently as possible to avoid entering into lengthy computations or triggering errors in the debug process while it is packaging debug data for transfer. Even so, not all debug data can be shown on the display. This section describes each of the reasons why this may happen:

Wing may time out handling a value -- Large data values may hang up the debug server process during packaging. Wing tries to avoid this by carefully probing an object's size before packing it up. In some cases, this does not work and Wing will wait for the data for the duration set by the Network Timeout preference and then will display the variable value as <network timeout during evaluate>.

Wing may encounter values too large to handle -- Wing will not package and transfer large sequences, arrays or strings that exceed the size limits set by Huge List Threshold and Huge String Threshold preferences. On the debugger display, oversized sequences and arrays are annotated as huge and <truncated> is prepended to large truncated strings.

To avoid this, increase the value of the threshold preferences, but be prepared for longer data transfer times. Note that setting these values too high will cause the debugger to time out if the Network Timeout value isn't also increased.

An alternative available in Wing Pro for viewing large data values is to enter expressions into the Watch tool or Debug Probe to view sub-parts of the data rather than tranferring the whole top-level portion of the value.

Wing may encounter errors during data handling -- Because Wing makes assignments and comparisons during packaging of debug data, and because it converts debug data into string form, it may execute special methods such as __cmp__ and __str__ in your code. If this code has bugs in it, the debugger may reveal those bugs at times when you would otherwise not see them.

The rare worst case scenario is crashing of the debug process if flawed C or C++ extension module code is invoked. In this case, the debug session is ended.

More common, but still rare, are cases where Wing encounters an unexpected Python exception while handling a debug data value. When this happens, Wing displays the value as <error handling value>.

These errors are not reported as normal program errors in the Exceptions tool. However, extra output that may contain the exception being raised can be obtained by setting the Debug Internals Log File preference.

Stored Value Errors

Wing remembers errors it encounters on debug values and stores these in the project file. These values will not be refetched during subsequent debugging, even if Wing is quit and restarted.

To override this behavior for an individual value, use the Force Reload item in the right-click context menu on a data value.

To clear the list of all errors previously encountered so that all values are reloaded, use the Clear Stored Value Errors item in the Debug menu. This operates only on the list of errors known for the current debug file, if a debug session is active, or for the main debug file, if any, when no debug process is running.