Skip to main content

开放、可扩展的 Python 注入器/分析器/分析器

项目描述

ppTOP

项目主页:https ://pptop.bma.ai/

ppTOP 是开放的、可扩展的 Python 注入器/分析器/分析器。

主要思想是在 Python 进程(已经运行或将要启动)中注入自定义代码,并在不修改任何代码的情况下分析其行为。

对调试日志中的“打印”和垃圾说不——现在你有了 ppTOP。用于 Python 的现代 MRI 扫描仪。

安装

  pip3 install pptop
  • Python:需要 3.5+,因为 ppTOP 使用 asyncio
  • 可以注入任何 Python 版本(已测试:2.7+)
  • 注入正在运行的进程需要gdb(几乎所有 Linux 发行版中都存在)
  • 目前仅支持 Linux 系统

特征

ppTOP 可以注入到任何正在运行的 Python 进程中

asciiccast

或者您可以手动加载 Python 程序并分析其启动

asciiccast

要启动程序,请按Ctrl+L或在命令行参数中指定-w sec参数以在指定的延迟后自动启动它。

来自连接过程的数据被实时收集并显示在基于表格的控制台 UI 中,可以使用自定义插件轻松扩展。

所有数据表都可以滚动、过滤,新的数据收集可以暂停。如果出现问题,任何插件都可以随时重新注入。

用法

要启动 ppTOP,请键入

    pptop

然后从列表中选择要注入的 Python 进程。

或者,您可以使用

    pptop PID
    # or
    pptop PID-FILE

并从命令行指定进程。

如果要分析程序启动,只需键入

    pptop /path/to/program.py

程序将在等待状态下加载,准备好后按Ctrl+L

要获得当前插件的帮助,请按F1显示模块文档。

配置

默认情况下,插件和键盘快捷键在 ~/.pptop/pptop.yml文件中配置(在首次启动时自动创建)。

标准插件

  • asyncio异步循环监视器
  • atasker atasker监视器
  • env查看进程操作系统环境变量
  • 日志注入所有 Python 记录器并收集日志消息
  • malloc跟踪对象内存分配
  • neotasker neotasker显示器
  • open_files查看进程打开的文件
  • script_runner在进程内启动自定义脚本
  • 线程查看进程线程
  • vars变量/函数观察者
  • yappi yappi分析器插件

大多数插件包含两部分代码:一部分在分析过程中收集数据,另一部分在 ppTOP UI 中显示。对于分析过程,所有插件都是不可见的、安全的和可卸载的(至少他们尽力了 :)

控制台模式

使用“`”按钮,可以打开远程 Python 控制台。它没有标准 Python 控制台那样的完整功能,但支持所有常用功能,如导入模块、定义函数和变量、执行函数和循环等。

asciiccast

控制台有自己的远程全局变量,它们会一直保留到 ppTOP 退出和注入的服务器终止。

抓取标准输出/标准错误

如果使用“-g”选项启动,ppTOP 将获取注入进程的 stdout/stderr 并将其打印到本地控制台。您可以通过按Ctrl+O来查看本地控制台,而无需进入控制台模式。

文档

配置、故障排除、高级使用、插件开发: https ://pptop.bma.ai/doc/

去做

  • 更多插件
  • 高级过滤
  • 数据快照
  • 逐步调试器
  • JSON API,网页界面
  • 图表

享受!:)

ps master中的代码可以完全破解,只能用pip安装。

项目详情


发布历史 发布通知| RSS订阅