跳转到主要内容

这是扩展的Python调试器(pdb)。它提供了一些非常有用的功能,有助于调试,特别是zope2/zope3/plone实例。

项目描述

概述

这是标准 Python调试器 的扩展,增加了一些功能,使调试更加容易。

stxnext.pdb 主要为zope用户提供便利,但也可用于其他Python项目。

功能

添加到标准pdb的新功能

  • 改进了 dir 函数。标准的 dir 函数列出某些对象的所有方法和属性名称。这个改进的 dir 以几列的形式打印出该函数的输出。还可以使用正则表达式进行过滤。

    示例

    (STX Next pdb) obj = object()
    (STX Next pdb) dir(obj)
    __class__                                 __reduce__
    __delattr__                               __reduce_ex__
    __doc__                                   __repr__
    __getattribute__                          __setattr__
    __hash__                                  __str__
    __init__
    __new__
    (STX Next pdb) dir obj attr
    __delattr__                               __setattr__
    __getattribute__
    (STX Next pdb) dir obj ^__[r-z]+
    __reduce__                                __setattr__
    __reduce_ex__                             __str__
    __repr__
  • info 命令打印关于对象的基本信息。

    示例

    (STX Next pdb) info obj
    type:        <type 'object'>
    class:       <type 'object'>
    id:          140460386956752
    str:         <object object at 0x7fbf7b7835d0>
    repr:        <object object at 0x7fbf7b7835d0>
    docstring:   The most base type
  • update_locals (ul) - 通过一些有用的变量和函数更新当前局部变量。如果 stxnext.pdb 可以找到 zope 或 plone,它会导入常用函数(例如 getToolByName,getMultiAdapter,alsoProvides)。如果 context 可用,它还可以导入 plone 工具。stxnext.pdb 在当前局部变量中寻找名为 self.contextcontextself 的变量。如果上下文应该是其他的,可以将其作为参数传递

    示例

    (STX Next pdb) update_locals #zope found, context unknown
    New locals:
        Attribute
        Interface
        ...
        schema
        sys
    
    (STX Next pdb) ul this_is_context #zope and plone found, correct context
    New locals:
        Attribute
        Interface
        ...
        sys
        uid_catalog

使用方法

stxnext.pdb 可以通过标准 pdb 调用打开 - 只需从 stxnext 模块导入 pdb。

由于 collective SVN 仓库阻止带有 set_trace 的代码提交,在下一条中必须将“*”替换为“_”

>>> import pdb; pdb.set*trace() #open standard pdb
(Pdb) c
>>> from stxnext import pdb; pdb.set*trace()
(STX Next pdb) c

如果 zope 实例以 debug-mode=on 运行,可以通过网络浏览器调用 pdb - 只需将 pdb 添加到 URL(例如,http://127.0.0.1:8080/plonesite/pdb)。在这种情况下,stxnext.pdb 尝试开启 tab completion - 请参阅 rlcompleter 文档

安装

或者,如果您使用 zc.buildout 管理您的项目,您可以这样做

  • stxnext.pdb 添加到要安装的 eggs 列表中,例如

    [buildout]
    ...
    eggs =
        ...
        stxnext.pdb
  • 如果您使用 plone.recipe.zope2instance 脚本管理您的实例,请将以下行添加到安装 ZCML slug

    [instance]
    recipe = plone.recipe.zope2instance
    ...
    zcml =
        ...
        stxnext.pdb
  • 如果您使用 zc.zope3recipes:application 脚本管理您的实例,请将以下行添加到安装 ZCML slug

    [instance]
    recipe = zc.zope3recipes:application
    ...
    site.zcml =
        ...
        <include package="stxnext.pdb" />
  • 重新运行 buildout,例如

    $ ./bin/buildout

如果您将从其他包的 configure.zcml 文件显式包含包,则可以跳过 ZCML slug。

参考

作者 & 联系方式

作者:

Wojciech Lichota <wojciech.lichota[at]stxnext.pl>

http://stxnext.pl/open-source/files/stx-next-logo

STX Next Sp. z o.o.

http://stxnext.pl

info@stxnext.pl

项目详情


下载文件

下载适合您平台的自定义文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

stxnext.pdb-0.2.1.tar.gz (11.7 kB 查看散列)

上传时间

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面