1.准备如下测试用例,并编译成模块
hi.c
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
MODULE_LICENSE("GPL");
MODULE_AUTHOR("cbx");
int testModule(int a, int b)
{
return a + b;
}
EXPORT_SYMBOL_GPL(testModule);
static int testModule_init(void)
{
printk("testModule init/n");
return 0;
}
static void testModule_exit(void)
{
printk("testModule exit/n");
}
module_init(testModule_init);
module_exit(testModule_exit);
Makefile(注意GCOV_PROFILE=y)
export sourcepath ?= $(shell pwd)
KERNEL_DIR :=/home/cuibixuan/git/linux
ARCH :=x86_64
GCOV_PROFILE=y # 对此模块做覆盖统计
ifneq ($(KERNELRELEASE),)
obj-m += test.o
else
default:
$(MAKE) -C $(KERNEL_DIR) CROSS_COMPILE=$(CROSS_COMPILE) ARCH=$(ARCH) M=$(sourcepath) modules
clean:
rm -rf *.o *.mod.c *.mod.o *.ko .*.mod .*.cm