问题描述
我正在用 Rust/C 编写一个性能分析工具。
我在 Rust 中使用了对 perf_event_open
的系统调用,并编写了一个测试。
测试是这样的:
#[test]
fn syscall_test() {
let event = &mut perf_event_attr {
type_: perf_type_id_PERF_TYPE_HARDWARE,size: std::mem::size_of::<perf_event_attr>() as u32,// something to consider fixing,for now leave it alone.
config: perf_hw_id_PERF_COUNT_HW_INSTRUCTIONS as u64,..Default::default()
};
event.set_disabled(1);
event.set_exclude_kernel(1);
event.set_exclude_hv(1);
let fd: isize = perf_event_open(&event,-1,0);
assert_ne!(fd,"Testing for failure");
}
如何增加测试可执行文件的权限?如果没有为可执行文件设置 CAP_PERFMON 或 CAP_SYS_ADMIN, perf_event_open 将始终返回 -1。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)