1个不稳定版本
0.0.1 | 2023年1月27日 |
---|
#31 在 #调试器
37KB
932 行
穷人的调试器
🚧 开发中,它正常工作,但未来可能会有一些变化。
调试代码的最简单方式。
这是一个简单的TUI调试器,它启动一个本地服务器,该服务器接受适配器发送的有效载荷。所有内容都通过HTTP请求进行,因此与其他解决方案相比非常快。您可以将它视为console.log(),但您使用的是终端而不是浏览器,并且它可以与任何语言一起使用。
要求
- 在项目中安装了您语言的PMD适配器。
安装
您可以通过cargo安装它。
- 安装cargo (https://doc.rust-lang.net.cn/cargo/)
- 运行
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