无法找到文件 syscall_table_32.S

无法找到文件 syscall_table_32.S

我正在使用 Ubuntu 12,内核版本是 3.8.0

我想添加个人系统调用,但无法找到上面提到的文件。

我正在尝试的路径是usr/src/linux-headers-3.8.0-19-generic/arch/x86/kernel

我也试过了usr/src/linux-headers-3.8.0-19-generic/arch/x86/syscalls

我也试过了usr/src/linux-headers-3.8.0-19/arch/x86/kernel

我在这个网站、stack exchange 和 google 上寻找解决方案但仍然无法解决 :(

请帮忙

答案1

要查找已安装的文件,您可以使用dpkg -S

$ dpkg -S syscall
gdb: /usr/share/gdb/syscalls
gdb: /usr/share/gdb/syscalls/sparc-linux.xml
manpages-dev: /usr/share/man/man2/_syscall.2.gz
gdb: /usr/share/gdb/syscalls/gdb-syscalls.dtd
gdb: /usr/share/gdb/syscalls/ppc64-linux.xml
gdb: /usr/share/gdb/syscalls/sparc64-linux.xml
gdb: /usr/share/gdb/syscalls/mips-n32-linux.xml
perl: /usr/lib/perl/5.14.2/bits/syscall.ph
manpages-dev: /usr/share/man/man2/syscalls.2.gz
gdb: /usr/share/gdb/syscalls/amd64-linux.xml
gdb: /usr/share/gdb/syscalls/i386-linux.xml
perl: /usr/lib/perl/5.14.2/syscall.ph
libc6-dev:i386: /usr/include/i386-linux-gnu/bits/syscall.h
perl: /usr/lib/perl/5.14.2/sys/syscall.ph
manpages-dev: /usr/share/man/man2/afs_syscall.2.gz
manpages-dev: /usr/share/man/man2/syscall.2.gz
gdb: /usr/share/gdb/syscalls/mips-o32-linux.xml
gdb: /usr/share/gdb/syscalls/ppc-linux.xml
libc6-dev:i386: /usr/include/syscall.h
gdb: /usr/share/gdb/syscalls/mips-n64-linux.xml
libc6-dev:i386: /usr/include/i386-linux-gnu/sys/syscall.h
linux-libc-dev:i386: /usr/include/i386-linux-gnu/asm/vsyscall.h

要找到已安装软件包未提供的文件,您可以尝试locate(如果文件足够新:

$ locate syscall.h
/usr/include/syscall.h
/usr/include/i386-linux-gnu/asm/vsyscall.h
/usr/include/i386-linux-gnu/bits/syscall.h
/usr/include/i386-linux-gnu/sys/syscall.h

如果上述方法均未显示结果,您可以尝试在Ubuntu 软件包搜索

http://packages.ubuntu.com/search?searchon=contents&keywords=文件名&模式=精确文件名&套件=raring&arch=any

如果你想要“当地的”解决方案用途apt-file

sudo apt-get -y 安装 apt-file
sudo apt-file 更新
apt 文件搜索文件名

答案2

嘿,从终端尝试一下

find /usr/src/linux-headers-3.8.0-19-generic/ -type f -name "syscall_table_32.S"

如果出现权限错误,请尝试运行以下命令须藤

祝你好运!

相关内容