从当前模块获取 Linux 内核模块名称
Get Linux Kernel module name from current module
我正在编写一些内核模块,但对于调试输出,我想(自动)打印出哪个内核模块正在生成输出。是否有函数或变量可用于获取正在执行的模块的名称?
在内核模块的代码中,THIS_MODULE
指向代表这个模块的结构体。您可以使用此结构的 name
字段来提取当前模块名称:
printk("Current module name: %s\n", THIS_MODULE->name);
如果您的代码可以编译(取决于配置)作为 模块 或 内核的一部分 ,那么在后一种情况 THIS_MODULE
将为 NULL,因此您无法访问其字段。对于此类代码,您可以改用 module_name
宏:
printk("Current module name: %s\n", module_name(THIS_MODULE));
在内核核心代码(不是模块)中宏被扩展为字符串 "kernel"
.
我正在编写一些内核模块,但对于调试输出,我想(自动)打印出哪个内核模块正在生成输出。是否有函数或变量可用于获取正在执行的模块的名称?
在内核模块的代码中,THIS_MODULE
指向代表这个模块的结构体。您可以使用此结构的 name
字段来提取当前模块名称:
printk("Current module name: %s\n", THIS_MODULE->name);
如果您的代码可以编译(取决于配置)作为 模块 或 内核的一部分 ,那么在后一种情况 THIS_MODULE
将为 NULL,因此您无法访问其字段。对于此类代码,您可以改用 module_name
宏:
printk("Current module name: %s\n", module_name(THIS_MODULE));
在内核核心代码(不是模块)中宏被扩展为字符串 "kernel"
.