标签: pdb

PDB不会在断点处停止

我是直接使用pdb进行调试的新手,我在调试Django应用程序时遇到了一些问题.这是我正在做的事情:

python -m pdb manage.py runserver
(pdb) b core/views.py:22
Breakpoint 2 at /Users/raphaelcruzeiro/Documents/Projects/pdb_test/core/views.py:22
(Pdb) c
Run Code Online (Sandbox Code Playgroud)

但是,执行直接通过断点.我错过了一些命令吗?本手册不再详述设置断点了.

python pdb

18
推荐指数
2
解决办法
6756
查看次数

Visual Studio 2010"无法找到或打开PDB文件"

我尝试在Visual Studio 10中调试程序,但是我遇到了断点问题.我将*.pdb文件对应的*.pdb文件放到同一目录中.但是在检查模块时,我看到每个DLL文件都被签名为Cannot find or open the PDB file.

我该如何解决这个问题?如何查看预期*.pdb文件所在的位置?

debugging dll visual-studio-2010 pdb

18
推荐指数
3
解决办法
6万
查看次数

奇怪的IPython ipdb行为

我有一些非常奇怪的行为,我只是不明白,因此无法解释,所以我希望有人可以帮助我.我注意到的第一件事是ipdb不再让我定义变量:

ipdb> what=5
ipdb> what
*** NameError: name 'what' is not defined
whatelse=6
Run Code Online (Sandbox Code Playgroud)

稍后我发现ipdb在我的输入上返回了这个(在再次运行代码之后):

dir()
ipdb> ['args', 'content_type', 'function', 'ipdb', 'item_code', 'kwargs', 'object_id', 'request', 'ud_dict', 'update_querydict', 'what', 'whatelse']
what=5
ipdb> what
5
ipdb> whatelse=7
ipdb> whatelse
ipdb> 6
whatelse
ipdb> 7
whatelse
ipdb> 6
whatelse
ipdb> 7
Run Code Online (Sandbox Code Playgroud)

对我来说,这看起来像我有两个交错调试会话,我可以访问一些奇怪的交替模式.我怎么能摆脱它呢?

编辑: 杀死所有python进程并重新运行代码确实有帮助.现在一切都恢复正常了.但是由于我不明白发生了什么,我会对发生的事情以及如何重现行为非常感兴趣.

python ipython pdb

18
推荐指数
1
解决办法
1138
查看次数

如何在分叉进程中使用ipdb.set_trace

我用ipdb.set_trace(),每当我需要设置我的代码一个破发点.现在,我正在尝试在我创建的过程中使用它multiprocessing,而代码确实停止,我无法输入任何内容来继续调试.有没有办法让我的stdin指导正常?

理想情况下,我想设想每次分叉进程停止调试时都会打开一个新的控制台,但我不认为这是可能的.

python ipython multiprocessing pdb ipdb

18
推荐指数
2
解决办法
1785
查看次数

PDB - 走出一个功能

step在使用pdb/ipdb调试器时,我可以在进入函数后退出一个函数吗?

如果没有这样的选择 - 什么是摆脱步入功能的最快方法?

python python-2.7 pdb ipdb

17
推荐指数
3
解决办法
7694
查看次数

什么是PDB文件?

.NET dll文件中的PDB文件是什么以及它的作用是什么?通常人们在部署时删除此文件,并且只将dll文件保存在lib文件夹中,但似乎什么也没发生,一切运行良好......

那么,什么是PDB文件呢?

.net pdb

16
推荐指数
2
解决办法
2万
查看次数

PDB中的自动完成和Tab键

TAB在(pdb)提示符下,我一直试图做一些其他事情而不是插入标签.

我想到的是触发自动完成,例如在这里这里,但tab键除了向pdb添加选项卡之外没有做任何其他事情.

所以:

(pdb)var + tabKeyPressed

我想得到:

(pdb)variable

代替:

(pdb)var[          ]

python python-2.7 pdb

16
推荐指数
3
解决办法
4169
查看次数

pdb无法在另一个线程中断?

考虑这个多线程程序:

import threading

class SomeThread(threading.Thread):
  def run(self):
    a = 1
    print a

def main():
  print 'hola'
  someThread = SomeThread()
  someThread.start()

if __name__ == '__main__':
  main()
Run Code Online (Sandbox Code Playgroud)

当我用pdb调试这个程序时,在提示符下我首先在两个print语句的每一个上设置一个断点.然后我继续 pdb打破了print 'hola'.我再次继续看到打印在另一个线程中的效果,但pdb不会中断.

帮助命令没有列出任何东西来切换像gdb这样的线程上下文......所以......在一个线程上下文中是否只能设置一个在另一个上下文中跳转的断点?

python multithreading breakpoints pdb

15
推荐指数
1
解决办法
1万
查看次数

注意python中的变量

有一个庞大的python项目,其中一个类的一个属性在某些地方只有错误的值.

它应该是sqlalchemy.orm.attributes.InstrumentedAttribute,但是当我运行测试时它是常量值,让我们说字符串.

有一些方法可以在调试模式下运行python程序,并在每个步骤之后自动执行一些检查(如果变量更改类型)吗?

PS我知道如何在inspect和property decorator的帮助下记录类实例属性的变化.可能在这里我可以使用这种方法与元类...

但有时我需要更一般和更强大的解决方案......

谢谢.

PPS我需要类似的东西:https://stackoverflow.com/a/7669165/816449,但可能会更详细地解释该代码中发生的事情.

python debugging introspection pdb

15
推荐指数
2
解决办法
2万
查看次数

如何使用远程pdb连接调试在Heroku上运行的Django应用程序?

要调试我在Heroku上看到但在本地计算机上没有看到的错误,我正在尝试进行逐步调试.

import pdb; pdb.set_trace()由于您无法访问连接到应用程序的控制台,因此典型方法不适用于Heroku,但显然您可以使用rpdb,即pdb的"远程"版本.

所以我安装了rpdb,import rpdb; rpdb.set_trace()在适当的位置添加.当我发出命中rpdb行的请求时,应用程序按预期挂起,我在heroku日志中看到以下内容:

pdb is running on 3d0c9fdd-c18a-4cc2-8466-da6671a72cbc:4444
Run Code Online (Sandbox Code Playgroud)

好的,那么如何连接到正在运行的pdb?我试图heroku run nc 3d0c9fdd-c18a-4cc2-8466-da6671a72cbc 4444从heroku的系统中尝试连接到命名主机,但只是立即退出状态1并且没有错误消息.

所以我的具体问题是:我现在如何连接到这个远程pdb?

一般相关的问题是:这是否是在Heroku上运行的应用程序的这种交互式调试的正确方法?有没有更好的办法?

注意:重庆CELERY:注意,我现在也尝试过与Celery类似的方法,但无济于事.默认主机celery的rdb(远程pdb包装器)使用的是localhost,当它是Heroku时你无法获得.我已经尝试将CELERY_RDB_HOST环境变量用于Heroku上托管的网站域,但是它提供了"无法分配请求的地址"错误.所以它是相同的基本问题 - 如何连接到在Heroku上运行的远程pdb实例?

python django debugging heroku pdb

15
推荐指数
1
解决办法
3433
查看次数