crash —— 如何获取某个系统调用入口代码?

发布时间 2023-09-23 21:38:25作者: 摩斯电码

通过sys命令可以获取当前系统的系统调用的信息:

crash> sys -c
NUM  SYSTEM CALL                FILE AND LINE NUMBER
  0  __x64_sys_read             ../fs/read_write.c: 621
  1  __x64_sys_write            ../fs/read_write.c: 646
  2  __x64_sys_open             ../fs/open.c: 1330
  3  __x64_sys_close            ../fs/open.c: 1437
  4  __x64_sys_newstat          ../fs/stat.c: 409
  5  __x64_sys_newfstat         ../fs/stat.c: 447
  6  __x64_sys_newlstat         ../fs/stat.c: 420
  7  __x64_sys_poll             ../fs/select.c: 1068
  8  __x64_sys_lseek            ../fs/read_write.c: 311
  9  __x64_sys_mmap             ../arch/x86/kernel/sys_x86_64.c: 86
 10  __x64_sys_mprotect         ../mm/mprotect.c: 815
 11  __x64_sys_munmap           ../mm/mmap.c: 2801
 12  __x64_sys_brk              ../mm/mmap.c: 170
 13  __x64_sys_rt_sigaction     ../kernel/signal.c: 4411
 ...

其中第1列表示系统调用号,第2列表示系统调用函数名,第3列表示对应的源码位置。

1 __x64_sys_write ../fs/read_write.c: 646为例:

write系统调用系统调用号是1,函数名__x64_sys_write,代码位置:

image