如何在开发过程中调试升华插件 [英] How to debug sublime plugins during development
问题描述
追溯(最近的最后一次呼叫):
文件./sublime_plugin.py,行362,in run_
文件./useIt.py,第14行,在$ self $。
中为$。
文件./useIt.py,第14行,运行
for self.view.sel()中的区域:
文件.\bdb.py,第46行,在trace_dispatch
文件.\bdb。 py,第65行,在dispatch_line
bdb.BdbQuit
有没有人理念?还是其他一些调试升级插件的方法?
问题是 sys .stdin
没有附加到任何通常。但是,如果从控制台启动SublimeText2,则 sys.stdin
可以正常工作:
- 在Mac上,通过在终端中输入完整路径,将资源包中的可执行文件定位到启动应用程序:
/ Applications / Sublime\ Text\ 2.app/Contents/MacOS/Sublime\ Text\ 2
-
在Windows上,从Windows控制台启动应用程序:
C:\Program Files\ Sublime Text 2\sublime_text.exe
临时,我没有Windows Sublime Text 2安装,所以这个命令行是基于一个快速的Google
该应用程序有一个控制台;但 sys.stdout
仍然重定向到内置的SublimeText 2控制台。您想使用正确的 stdout
启动调试器,该控制台仍然连接到控制台。而不是 import pdb; pdb.set_trace()
,使用:
import pdb,sys; pdb.Pdb(stdout = sys .__ stdout __)。set_trace()
原始控制台 stdout
保存在 sys .__ stdout __
中,并将其传递给 pdb.Pdb()
你得到一个功能完整的 pdb
会话。
I want to debug my plugin with pdb but it doesn't work. I get these errors
Traceback (most recent call last):
File "./sublime_plugin.py", line 362, in run_
File "./useIt.py", line 14, in run
for region in self.view.sel():
File "./useIt.py", line 14, in run
for region in self.view.sel():
File ".\bdb.py", line 46, in trace_dispatch
File ".\bdb.py", line 65, in dispatch_line
bdb.BdbQuit
Has anyone an idea? Or some other way to debug a sublime plugin?
The problem is that sys.stdin
is not attached to anything normally. But, sys.stdin
does work if you start SublimeText2 from a console:
On Mac, start the application by locating the executable in the resource bundle by entering the full path in the Terminal:
/Applications/Sublime\ Text\ 2.app/Contents/MacOS/Sublime\ Text\ 2
On Windows, start the application from the Windows Console:
"C:\Program Files\Sublime Text 2\sublime_text.exe"
provisional, I have no Windows Sublime Text 2 install so this command line is based on a quick Google
Now the application has a console; but sys.stdout
is still redirected to the built-in SublimeText 2 console. You want to start your debugger with the correct stdout
, the one still connected to your console. Instead of import pdb; pdb.set_trace()
, use:
import pdb, sys; pdb.Pdb(stdout=sys.__stdout__).set_trace()
The original console stdout
is saved in sys.__stdout__
and by passing that to pdb.Pdb()
you get a fully functional pdb
session.
这篇关于如何在开发过程中调试升华插件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!