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