Wing IDE具备一个十分有用的特性,就是处理复杂bug的时候能够以各类各样的方式查看调试数据值。这个功能具体是由Watch工具实现的: 框架
查看数据值 工具
在PrintAsHTML中发生异常时,右键单击Stack Data工具中的本地数值。这将显示如下选项,可随着时间的变化查看数值: lua
Watch by Symbolic Path——将致使Wing IDE在当前堆栈中寻找带有符号名称的消息。当你选择这个选项时,Watch面板将会显示一个条目: spa
news <list 0x40401eec> 调试
(对象ID固然会有所不一样) 对象
可用于快速访问数值,无需在Stack Data视图中挖掘很长的本地或者全局变量列表。 进程
因为在调试会话中具备邮储,因此在用户清除以前都将被记录在Watch工具中。 事件
Watch by Direct Reference——这致使Wing IDE对特定对象实例(列表)保持一个引用。它将被即时显示在Watch工具中。若是对象实例的引用计数为零,Wing IDE将报告<value not found>。 get
这对于在调试不带有引用或者是没法到达引用实例的代码部分时查看对象是很是有用的。 变量
因为对象引用在调试会话时是没有意义的,因此一旦调试进程终止这些条目将从Watch工具中删除。
Watch by Parent Slot -- 结合了上述两种模式,经过对所选择的值的源部分保证一个引用和经过符号名称查找子部分来实现。
若是在本地事件中进行尝试,用户将在看价值在特定的本地目录中查看值,而不是在当前堆栈框架的事件中。
这种技术在工做于面向对象的代码时很是有用,它能够用来观察特定的对象实例的特定属性。
因为源部分被对象引用追踪,一旦调试过程结束,这些条目也将从Watch工具中清除。
Watch by Module Slot——经过在sys.modules中查找模块名称并追踪值,该选项能够用来观察模块内部的值。该选项只有在右键单击Modules模块工具的值以后才能进行使用。
由于这些在调试会话过程当中会起到做用,因此在被用户删除以前将保留在Watch工具中。
查看表达式
用户也能够在Watch面板中查看任何Python表达式。只需点击Watching列的空白部分,并输入想要看的表达式:
在调试还停留在PrintAsHTML异常的时候,经过输入:
news[-1]
若是不能肯定值,只要有<undefined>或者<error evaluating>的其中一个,就将显示消息的最后一项。
表达式将记录在全部调试回话的Watch工具中,直到被用户删除。