有没有办法跨session保存pdb(python调试器)命令历史记录?另外,我可以指定历史长度吗?这类似于问题HowcanImakegdbsavethecommandhistory?,但是对于pdb而不是gdb。-非常感谢 最佳答案 参见this邮政。可以在pdb中保存历史记录。默认情况下,pdb不会读取多行。所以所有的功能都需要在一行上。在~/.pdbrc中:importatexitimportosimportreadlinehistoryPath=os.path.expanduser("~/.pyhistory")defsav
如果我想运行一个脚本并让pdb捕获出现的任何异常,我会这样调用它:python-mpdbscript.py或者:pdbscript.py问题是它立即在调试提示符处停止:>/home/coiax/Junkyard/script.py(1)()->importsys(Pdb)我必须输入c或continue才能开始。有什么方法可以让它加载并启动脚本,而无需最初询问我是否要设置任何断点或其他内容?我发誓我已经阅读了pdb模块文档,并尝试制作一个包含.pdbrc的文件c但它不会神奇地自动启动。 最佳答案 你想要的可以使用ipython轻松实现
我正在调用python-mpdbmyapp.py,当异常触发时,我通常会返回到pdb解释器来调查问题。但是,在我通过curses.wrapper()调用并进入curses模式后抛出此异常,从而使pdb解释器无用。我该如何解决这个问题? 最佳答案 James的回答很好,我投了赞成票,但我也会考虑尝试拆分程序的逻辑层和表示层。将curses部分保留在库之上的一个薄层,并编写一个简单的驱动程序来调用正确的例程来重现错误。然后你可以潜入并做必要的事情。我能想到的另一种方法是创建一个名为debug的函数,或者让您回到常规屏幕并调用pdb的东西
我想用pdb调试我的插件,但它不起作用。我收到这些错误Traceback(mostrecentcalllast):File"./sublime_plugin.py",line362,inrun_File"./useIt.py",line14,inrunforregioninself.view.sel():File"./useIt.py",line14,inrunforregioninself.view.sel():File".\bdb.py",line46,intrace_dispatchFile".\bdb.py",line65,indispatch_linebdb.BdbQuit有
我正在尝试调试Python程序,我在函数中插入了经典的“importpdb;pdb.set_trace()”行,就在生成堆栈跟踪的调用之前。但是,该调用似乎被忽略了,即什么也没有发生,我也没有收到pdb提示。在程序的这一点上,只有一个事件线程。没有检测到pdb模块的猴子补丁。欢迎就可能导致对set_trace的调用被忽略的任何帮助提供帮助。谢谢。平台信息:Debiansqueeze+python2.6.5代码摘录:importthreadingprintthreading.active_count()importpdbprintpdbpdb.set_trace()print"*****
$./runtests.py-vtests/managers/test_customer.py:CustomerManagerTest.test_register_without_subscription--ipdb...test_register_without_subscription(tests.managers.test_customer.CustomerManagerTest)...-TRACEBACK--------------------------------------------------------------------Traceback(mostrecent
我正在寻找在Macvim中使用leaderp这样的击键插入一行代码的方法我想插入以下代码行:importpdb;pdb.set_trace()在python领域可能不是闻所未闻的代码行 最佳答案 我会使用一个简单的映射(没有函数)到领导者p:nnoremappoimportpdb;pdb.set_trace()当按o时,这将进入插入模式,在当前行之后插入一个空行(使用o),然后键入importpdb;pdb.set_trace(),最后回到正常模式(使用Esq)。如果要在当前行之前插入代码,请将o替换为O:nnoremappOimp
我经常使用PDB,如果我能添加颜色的systax突出显示,它似乎会更好。理想情况下,我希望代码的路径具有较浅的颜色。实际代码行将语法突出显示。我使用的是OSX和终端应用程序。Python2.7 最佳答案 pdb不支持着色。然而,获得它并不难,即使您是命令行迷(就像我一样;-)——您不必为了在调试Python时获得着色而切换到GUI/IDE。特别是,当您通过SSH访问远程计算机时,命令行工具通常好得多,可以节省大量带宽和任何远程访问GUI和IDE可能给您带来的延迟问题;-).具体来说,对于您要询问的任务,请考虑ipdb(您还需要ipy
我有一个运行Python2.6.X的应用程序。以交互模式启动Python解释器(使用或不使用virtualenv):readline支持工作(命令历史)。使用相同的Python解释器启动我的应用程序(virtualenv-ed或不):使用pdb.set_trace()时没有可用的readline支持:光标键不起作用。操作系统为Linux。 最佳答案 检查此配方以在pdb中启用readline支持http://code.activestate.com/recipes/498182-sane-tab-completion-in-pdb/
考虑这个多线程程序:importthreadingclassSomeThread(threading.Thread):defrun(self):a=1printadefmain():print'hola'someThread=SomeThread()someThread.start()if__name__=='__main__':main()当我用pdb调试这个程序时,在提示符下我首先在两个打印语句中的每一个设置了一个断点。然后我继续。pdb在print'hola'处中断。我再次继续并在另一个线程中查看打印效果,但pdb没有中断。帮助命令没有像gdb那样列出任何切换线程上下文的内容……