3 个版本
0.1.2 | 2020 年 10 月 16 日 |
---|---|
0.1.1 | 2018 年 1 月 3 日 |
0.1.0 | 2017 年 5 月 19 日 |
在 #ptrace 中排名第 10
每月下载 148 次
在 2 个 crate 中使用
7KB
64 行
此 crate 允许您启用 ptrace
的方式启动子进程。它提供了一个特质—CommandPtraceSpawn
—为 std::process::Command
实现,为您提供了访问 spawn_ptrace
方法的权限。
以这种方式启动的进程将在 SIGTRAP
中停止其 exec
,因此您可以在进程运行任何代码之前执行任何必要的早期干预,然后使用 PTRACE_CONT
来恢复其执行。
示例
use std::io;
use spawn_ptrace::CommandPtraceSpawn;
use std::process::Command;
fn main() -> io::Result<()> {
let child = Command::new("/bin/ls").spawn_ptrace()?;
// call `ptrace(PTRACE_CONT, child.id(), ...)` to continue execution
// do other ptrace things here...
Ok(())
}
有关此 crate 使用的实际示例,请参阅我的 tracetree
工具。
许可证
此软件根据 MIT 许可证提供。请参阅 LICENSE。
依赖项
~1.5MB
~36K SLoC