Python的rdb调试断点中不存在局部变量(在芹菜任务中)

时间:2013-04-01 15:49:05

标签: python celery remote-debugging pdb

我正在尝试debug a celery task但是当我telnet in时参数和局部变量不存在:

from celery import Celery
from celery.contrib import rdb

celery = Celery('tasks', broker="redis://localhost:6379/0")

@celery.task
def add(x, y):
  someVar = 3
  rdb.set_trace()

在另一个终端:

telnet 127.0.0.1 6902(或无论端口号是什么)

xysomeVar都会产生名称错误,例如:NameError: name 'x' is not defined

1 个答案:

答案 0 :(得分:2)

要检查您是否在当前堆栈框架中,请使用ud(向上和向下)向上和向下移动(http://docs.python.org/2/library/pdb.html#debugger-commands

您可以看到您所在的文件(它是在pdb提示符下编写的)。通常你必须上去一两次才能找到我所经历的正确文件