3 个版本

0.1.2 2020 年 10 月 16 日
0.1.1 2018 年 1 月 3 日
0.1.0 2017 年 5 月 19 日

#ptrace 中排名第 10

Download history • Rust 包仓库 44/week @ 2024-03-29 • Rust 包仓库 10/week @ 2024-04-05 • Rust 包仓库 4/week @ 2024-04-12 • Rust 包仓库 1/week @ 2024-04-19 • Rust 包仓库 4/week @ 2024-05-24 • Rust 包仓库 1/week @ 2024-05-31 • Rust 包仓库 2/week @ 2024-06-07 • Rust 包仓库 2/week @ 2024-06-14 • Rust 包仓库

每月下载 148
2 个 crate 中使用

MIT 许可证

7KB
64

Build Status crates.io

此 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