#tui

app pmd

穷人的调试器,最简单的调试方式

1个不稳定版本

0.0.1 2023年1月27日

#31#调试器

MIT 许可证

37KB
932

穷人的调试器

🚧 开发中,它正常工作,但未来可能会有一些变化。


调试代码的最简单方式。

这是一个简单的TUI调试器,它启动一个本地服务器,该服务器接受适配器发送的有效载荷。所有内容都通过HTTP请求进行,因此与其他解决方案相比非常快。您可以将它视为console.log(),但您使用的是终端而不是浏览器,并且它可以与任何语言一起使用。

_zsh_tmux_plugin_run 2022-04-29 15-28-12

要求

  • 在项目中安装了您语言的PMD适配器。

安装

您可以通过cargo安装它。

  1. 安装cargo (https://doc.rust-lang.net.cn/cargo/)
  2. 运行 cargo install pmd

配置

默认配置位于 ~/.config/pmd/config.toml(适用于类UNIX系统)或 ~/.pmd/config.toml(适用于Windows)。

您可以通过传递一个指向config.toml文件的-c (--config)标志来覆盖默认配置。

快捷键

快捷键类似于VIM。默认情况下,leader键设置为,,但您可以通过配置来覆盖它。

调试器由三个输入状态组成

  • 普通模式
  • 视觉模式
  • 检查模式

普通模式

普通模式使您能够滚动所有断点和调用堆栈数据。

它有以下快捷键

  • j(或向下箭头)-> 向下移动列表
  • k(或向上箭头)-> 向上移动列表
  • <leader> + h -> 向左移动
  • <leader> + l -> 向右移动
  • i -> 设置检查模式,检查转储的变量
  • v -> 设置视觉模式,并在弹出窗口中打开选定的断点/调用堆栈以获取更多详细信息。
  • q -> 退出

视觉模式

视觉模式旨在显示正常模式中不存在的断点/调用堆栈的额外数据。

它有以下快捷键

  • q -> 退出
  • ESC -> 转到普通模式

检查模式

检查模式使您能够检查适配器发送的树形数据。

它有以下快捷键

  • j(或 下箭头)→ 向下移动树
  • k(或 上箭头)→ 向上移动树
  • h → 关闭选定的项目
  • l → 展开选定的项目。
  • q -> 退出
  • ESC -> 转到普通模式

适配器

适配器是特定于语言的包,它通过HTTP将实际的调试数据发送到PMD。

当前支持

适配器API

适配器的一个示例API

curl --request POST \
  --url https://127.0.0.1:6969/dump \
  --header 'Content-Type: application/json' \
  --data '{
        "timestamp": "3223232",
        "line": "6",
        "connector_type": "php",
        "filepath": "/home/project/drupal/web/index.php",
        "callstack": [
                {
                        "filepath": "/home/project/drupal/web/index.php",
                        "line": "10"
                }
        ],
        "payload": ""
}'

类型

  • 时间戳 → 字符串
  • 行号 → 字符串
  • 连接器类型 → 字符串
  • 文件路径 → 字符串
  • 调用栈 → 数组(键为行号(int),值为文件路径(string)
  • 有效负载 → JSON编码的字符串

安全漏洞

对于任何安全漏洞,请发送电子邮件至 [email protected]

鸣谢

许可证

MIT许可证(MIT)。请参阅许可证文件获取更多信息。

依赖项

~11–22MB
~279K SLoC