Perfetto 翻译第十五篇-数据来源-系统调用
前言:虽然有翻译软件,虽然有chatgpt,毕竟语言隔阂,对这个工具还是一知半解,因此想通过翻译的方式和大家来一起学习下Perfetto这个强大的工具
#####################以下分割线#####################
英文原文在这里
在Linux和Android(仅限用户调试版本)上,Perfetto可以跟踪系统调用。
目前,trace中仅记录系统调用编号,不存储参数以限制trace大小开销。
在导入时,Trace Processor 使用内部系统调用映射表,当前支持 x86、x86_64、ArmEabi、aarch32 和 aarch64。这些表是通过 extract_linux_syscall_tables脚本生成的。
[UI]
在 UI 级别,系统调用以内联方式显示,其中包含每个线程切片轨道:
syscalls.png
SQL
在 SQL 级别,系统调用与任何其他用户空间的切片事件没有什么不同。它们混合在每个线程切片堆栈中,可以通过查找“sys_”前缀轻松过滤:
select ts, dur, t.name as thread, s.name, depth from slices as s
left join thread_track as tt on s.track_id = tt.id
left join thread as t on tt.utid = t.utid
where s.name like 'sys_%'
截屏2023-10-12 22.54.01.png
TraceConfig 跟踪配置
data_sources: {
config {
name: "linux.ftrace"
ftrace_config {
ftrace_events: "raw_syscalls/sys_enter"
ftrace_events: "raw_syscalls/sys_exit"
}
}
}
#####################以上分割线#####################
后记:
1 本次主要使用百度翻译,虽然被骂,但至少翻译这个工具降低了门槛。
2 英文文档中的长难句真的是又长又难,基于百度的翻译,然后自己再调整下,水平实在有限。
3 技术背景知识不够,有些专有名词不知道怎么翻译,也不知道百度翻译的是否准确,功夫在诗外。
4 万事开头难,中间难不难,还不知道。中间的事后面再说,正确一天翻译一篇。
5 虽然可能会有人不屑,但总要有人去做不起眼的小事。
6 google 厉害,这个perfetto 工具也很厉害。君子善假于物也。
7 工具的使用是最简单的入门,背后还有更多的东西值得学习。
8 水平实在有限,闻过则喜,希望有更多的人反馈,期待更好的建议