首页
/ rpdb 远程调试器技术文档

rpdb 远程调试器技术文档

2024-12-20 17:23:19作者:冯爽妲Honey

rpdb 是一个基于 pdb 的远程调试器包装器,它将 stdin 和 stdout 重定向到套接字处理器。以下是关于如何安装、使用以及项目 API 的详细说明。

1. 安装指南

在 CPython(标准 Python)中安装

使用 pip 命令安装 rpdb:

pip install rpdb

如果您需要一个快速的临时替代方案,您可以将整个 rpdb 子目录(包含 init.py 文件的目录)复制到您的 $PYTHONPATH 上的某个位置。

在 Tomcat web 应用中安装

将 rpdb 目录(包含 init.py 文件的目录)复制到您的 WEB-INF/lib/Lib 文件夹中,同时包含标准 Jython 库(这是必需的)。

2. 项目使用说明

要使用 rpdb,您可以在代码中插入以下任一方式来启动调试器:

  • 默认情况下,使用以下代码在端口 4444 上打开调试器:

    import rpdb
    rpdb.set_trace()
    
  • 如果需要,您也可以手动实例化 Rpdb 并指定端口:

    import rpdb
    debugger = rpdb.Rpdb(port=12345)
    debugger.set_trace()
    

在执行 set_trace() 后,您的脚本将会“挂起”,此时可以通过使用 telnet 或 netcat 等工具来访问 rpdb 来继续执行:

nc 127.0.0.1 4444

3. 项目 API 使用文档

rpdb 提供了以下 API 方法:

  • set_trace(): 在当前位置启动调试器。
  • handle_trap(): 允许在任何时间点通过 TRAP 信号触发调试器,这对于独立于特定失败或断点调试运行进程非常有用。

使用示例:

import rpdb
rpdb.handle_trap()

# 可以选择性地指定地址和端口
rpdb.handle_trap("0.0.0.0", 54321)

请注意,调用 handle_trap 会覆盖应用程序中已定义的 SIGTRAP 信号处理程序(如果有的话)。

4. 项目安装方式

项目的安装方式已在“安装指南”部分详细说明。您可以根据您的环境选择适合的安装方法。


请注意,rpdb 在 Jython 2.5 到 2.7 版本以及 Python 2.5 到 3.1 版本上已知能够正常工作。本项目最初是为 Jython 而写的,因为这是在 Tomcat 上运行时调试的一种可行方法。

已知问题包括套接字可能不会始终正确关闭,以及 Jython 2.5/pdb 中的一个 bug,在继续执行后可能会导致“幽灵断点”的问题。

感谢各位贡献者对项目的贡献。

登录后查看全文
热门项目推荐