开启vmlinux的调试符号在Makefile中哪里加-g
时间: 2023-11-28 14:47:43 浏览: 37
在Makefile中,可以在编译内核时加上-g参数来开启调试符号。一般来说,这个参数是在CFLAGS变量中设置的,例如:
```
CFLAGS_KERNEL := -Wall -Werror -O2 -g
```
其中,-g参数表示开启调试符号。注意,开启调试符号会增加内核的体积和编译时间,所以在生产环境中不建议开启。
相关问题
在哪开启带有调试符号的vmlinux
通常,在Linux内核源码树的顶层目录下,可以找到已编译内核的vmlinux文件。如果需要带有调试符号的vmlinux文件,可以在内核配置时开启CONFIG_DEBUG_INFO选项,然后重新编译内核。
在重新编译内核后,可以在编译输出目录(通常位于内核源码树下的“/output”目录)中找到带有调试符号的vmlinux文件。如果使用了分布式编译的方式,可能需要在远程编译节点上查找该文件。
如果是在运行的系统中需要查找带有调试符号的vmlinux文件,可以尝试使用如下命令查找:
```
find / -name vmlinux\* -type f
```
该命令会在整个文件系统中查找带有vmlinux前缀的文件,并将其输出。一般情况下,带有调试符号的vmlinux文件名中会包含“dbg”、“debug”等关键字,可以根据这些关键字进行过滤。
查看 vmlinux 的符号表来获得每个系统调用的函数地址
要查看 vmlinux 的符号表来获取系统调用的函数地址,可以使用以下命令:
```
nm vmlinux | grep sys_
```
该命令将列出所有以 "sys_" 开头的符号,这些符号代表系统调用函数。在输出结果中,第一列是符号的地址,第三列是符号的名称。您可以在 vmlinux 符号表中查找所需的符号名称,并使用该符号的地址作为函数地址。