17.5. 调试会话示例¶
在这里,我们将展示如何远程调试TestPlugin。我们还将学习如何插入代码断点、停止执行和在执行期间显示变量值。要遵循的步骤是:
创建指向 TestPlugin。
将断点添加到“测试插件运行()”Aptana调试透视图中的函数。
启动PyDev调试服务器。
从QGIS连接到PyDev服务器。
运行插件。
探索变量值。
继续执行插件。
17.5.1. 为TestPlugin创建PyDev项目¶
要添加代码断点,必须加载"test_plugin.py"。这可以简单地作为文件打开,但是最好学习如何将整个插件作为PyDev项目查看。 这允许我们使用Aptana作为调试和开发环境。分两步完成:
在AptanaStudio3中创建PyDev项目。
将源代码链接到项目。
创建名为"TestPlugin"通过导航到"File"新建项目。这将打开一个向导,我们必须在其中查找PyDev项目进入。 选择它并单击"Next"底部的按钮。在这里,向导将转到插入项目名称的阶段,TestPlugin,然后单击“完成”底部的按钮。 一个叫做"TestPlugin"将显示在 PyDev包资源管理器阿普塔纳区。
下一步是添加文件夹;我们的"TestPlugin"项目内部的代码。要添加它,请选择"TestPlugin PyDev"项目单击它添加一个新文件夹, 如下面的屏幕截图所示 图 17.15 。

图 17.15 TestPlugin项目¶
在这里,我们可以看到上下文菜单为所选项目添加新文件夹。此操作将打开一个GUI,我们可以在其中创建或链接一个新文件夹。 在我们的例子中,链接到现有的插件代码很有用,可以使用先进的图形用户界面的功能,如下所示 图 17.16 。

图 17.16 用户界面¶
链接文件夹后,它将显示在TestPlugin PyDev项目,我们可以在其中查找test_plugin.py代码。双击该文件;它将在Aptana的右侧打开, 如下图所示 图 17.17 。

图 17.17 查找项目¶
17.5.2. 添加断点¶
断点是调试器指令,用于在指定行停止执行,以允许用户调查变量值并最终手动更改其值。
我们的作用域是添加一个简单的断点,并检查插件的执行是否恰好在该点停止,从而将控制权传递给远程调试器。
要添加断点,请打开Debug透视图并双击行号的左侧,例如,用于(id,map) 代码输入“层dict.items()”。Aptana将添加断点, 如下图所示 图 17.18 。

图 17.18 Debug透视图¶
添加断点的行由左侧的红色框标记,新断点将列在“断点”列表,由右上角的红色框标记,如 图 17.19 。

图 17.19 断点列表¶
17.5.3. 实际调试¶
现在是测试调试会话的时候了。我们启动PyDev调试服务器并连接到它,如前所述。
在QGIS中,运行"TestPlugin";QGIS现在将冻结,因为它开始执行“运行()”方法 test_plugin.py 遇到代码和断点。 因此,该控件被传递给PyDev调试器;Aptana Debug透视图将类似于:
在这里,左边的红色框显示代码停止的位置,在前面的绿色项目符号中添加一个箭头。 这个变量Aptana部分显示代码中使用的变量及其值,右侧的红色框标记了该部分。
在前面的屏幕截图中,有几个按钮,上面的红色框标记了这些按钮,它们可以一步一步地运行语句、输入函数或继续执行。
关于如何使用PyDev调试透视图的详细描述超出了本章的范围,但是可以在 http://PyDev.org/manual_adv_debugger.html 上找到有关PyDev的更多文档。