17.5. 调试会话示例#

在这里,我们将展示如何远程调试TestPlugin。 我们还将学习如何插入代码断点、停止执行和在执行期间显示变量值。 要遵循的步骤是:

  1. 创建指向 TestPlugin。

  2. 将断点添加到“测试插件运行()”Aptana调试透视图中的函数。

  3. 启动PyDev调试服务器。

  4. 从QGIS连接到PyDev服务器。

  5. 运行插件。

  6. 探索变量值。

  7. 继续执行插件。

17.5.1. 为TestPlugin创建PyDev项目#

要添加代码断点,必须加载"test_plugin.py"。 这可以简单地作为文件打开,但是最好学习如何将整个插件作为PyDev项目查看。 这允许我们使用Aptana作为调试和开发环境。 分两步完成:

  1. 在AptanaStudio3中创建PyDev项目。

  2. 将源代码链接到项目。

创建名为"TestPlugin"通过导航到"File"新建项目。 这将打开一个向导,我们必须在其中查找PyDev项目进入。 选择它并单击底部 Next 按钮。 在这里,向导将转到插入项目名称的阶段,TestPlugin,然后单击底部 完成 按钮。 一个叫做"TestPlugin"将显示在 PyDev包资源管理器阿普塔纳区。

下一步是添加文件夹;我们的"TestPlugin"项目内部的代码。 要添加它,请选择"TestPlugin PyDev"项目单击它添加一个新文件夹, 如 图 17.18 所示。

image440_xcw

图 17.18 TestPlugin项目#

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

image441_xyj

图 17.19 用户界面1#

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

image442_x2h

图 17.20 查找项目#

17.5.2. 添加断点#

断点是调试器指令,用于在指定行停止执行,以允许用户调查变量值并最终手动更改其值。

我们的作用域是添加一个简单的断点,并检查插件的执行是否恰好在该点停止,从而将控制权传递给远程调试器。

要添加断点,请打开Debug透视图并双击行号的左侧,例如,用于(id,map) 代码输入“层dict.items()”。 Aptana将添加断点,如 图 17.21 所示。

image443_x72

图 17.21 Debug透视图#

添加断点的行由左侧的红色框标记,新断点将列在“断点”列表,由右上角的红色框标记, 如 图 17.22 所示。

image444_x04

图 17.22 断点列表#

17.5.3. 实际调试#

现在是测试调试会话的时候了。 我们启动PyDev调试服务器并连接到它,如前所述。

在QGIS中,运行"TestPlugin"; QGIS现在将冻结,因为它开始执行“运行()”方法 “test_plugin.py” 遇到代码和断点。 因此,该控件被传递给PyDev调试器;Aptana Debug透视图将类似于:

在这里,左边的红色框显示代码停止的位置,在前面的绿色项目符号中添加一个箭头。 这个变量Aptana部分显示代码中使用的变量及其值,右侧的红色框标记了该部分。

在前面的屏幕截图中,有几个按钮,上面的红色框标记了这些按钮, 它们可以一步一步地运行语句、输入函数或继续执行。

关于如何使用PyDev调试透视图的详细描述超出了本章的范围, 但是可以在 http://PyDev.org/manual_adv_debugger.html 上找到有关PyDev的更多文档。