ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

插件调试器

使用Winpdb图形化Python调试器调试Sublime插件。

详细信息

安装

  • 总数 4K
  • Win 3K
  • Mac 667
  • Linux 896
8月6日 8月5日 8月4日 8月3日 8月2日 8月1日 7月31日 7月30日 7月29日 7月28日 7月27日 7月26日 7月25日 7月24日 7月23日 7月22日 7月21日 7月20日 7月19日 7月18日 7月17日 7月16日 7月15日 7月14日 7月13日 7月12日 7月11日 7月10日 7月9日 7月8日 7月7日 7月6日 7月5日 7月4日 7月3日 7月2日 7月1日 6月30日 6月29日 6月28日 6月27日 6月26日 6月25日 6月24日 6月23日
Windows 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Mac 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

说明

源代码
bitbucket.​org

PluginDebugger

本包包含一些小的粘合代码,以便在有魅力的Winpdb图形化Python调试器上进行调试Sublime插件。

用法

这里是一个debug_example.py的Python代码片段

import sublime_plugin
import sys

class DebugExampleCommand(sublime_plugin.WindowCommand):

    def run(self, **kwargs):

        sys.stderr.write("started\n")
        i = 4
        import spdb ; spdb.start()
        z = 5
spdb.start()
如果Winpdb尚未从插件调试器启动,它会启动Winpdb。此后对该函数的调用都会设置一个断点。如果在Winpdb(从插件调试器启动)之间被终止,它将被重新启动。
spdb.setbreak()
设置一个断点。您需要附加调试客户端才能使用此功能。

注意

如果您手动启动Winpdb,请使用sublime密码在本地主机上查找脚本。

安装

使用Package Control安装此包。

除本包外,您还需从http://winpdb.org/download/安装Winpdb(或者在相似于Debian的系统上使用apt-get install winpdb)。

配置

唯一的配置选项是plugin_debugger_python,可以在用户设置文件Packages/User/Preferences.sublime-sttings中设置。这指定了您安装Winpdb的Python安装的完整路径。请注意,这必须是Python 2.x(推荐使用2.7)。您也可以使用此进行Python3调试。

我推荐使用配置编辑器来设置它;)。

测试您的安装

从命令面板运行"插件调试器:运行调试器(debug_example)"。

您的Sublime Text将暂停几秒钟,然后会打开一个Winpdb窗口,准备调试DebugExampleCommand。

模块rpdb2会深度钩入Python解释器,所以如果您确实想退出调试会话,您需要重新启动Sublime Text。

一旦Winpdb已经打开,你应该保持它打开,因为它会通知你任何未捕获的异常。如果你关闭Winpdb,Sublime Text在未捕获的异常(因为它在该异常上断住)下会简单地冻结,但因为你缺少前端而不会得到通知。

代码片段

有一个spdb代码片段,它插入

import spdb ; spdb.start(0)

虫虫

请将虫虫发布到:https://bitbucket.org/klorenz/plugindebugger/issues.

已知问题

我尝试自动卸载rpdb2库并取消所有其钩少于Python系统,但至今未能成功。

我还尝试使用Package Control的thread_progress获取关于加载插件调试器的漂亮的任务栏信息,但尚未成功运行调试器不受中断调用的线程(这意味着它不会被中断调用所影响)。

目前我将停止自动卸载的工作,因为对我来说在调试会话后重新启动Sublime Text是好的(至少目前是这样)。

更改

2014-04-12
  • 添加Python-3.3.3-Lib.zip,以正确显示Python库调试。
  • 现在也将处理所有包文件,即使是在.sublime-package文件中。
2014-01-22
  • 预先导入rpdb2导入的包,使得它们从Sublime Text环境而不是从Winpdb安装的环境加载
  • Plugin Debugger.sublime-settings替换为Preferences.sublime-settings,以便更容易处理设置。
  • 在临时目录中运行外部Python,以防Sublime Text文件夹出现在模块路径中。

作者

Kay-Uwe (Kiwi) Lorenz <[email protected]> (http://quelltexter.org)

支持我的工作在Sublime Text插件通过Paypal捐赠