如何使用-ggdb标志编译linux内核模块
我修改我的模块Makefile,使之成为带有如何使用-ggdb标志编译linux内核模块,linux,linux-kernel,linux-device-driver,Linux,Linux Kernel,Linux Device Driver,我修改我的模块Makefile,使之成为带有-ggdb标志的内核模块 KERNROOT := /lib/modules/$(shell uname -r)/build ccflags-y += -ggdb3 #ccflags-y += -g test: $(MAKE) $(ccflags-y) -C $(KERNROOT) M=$(shell pwd) 但它不起作用。失败消息: make: invalid option -- 'g' make: invalid opt
-ggdb
标志的内核
模块
KERNROOT := /lib/modules/$(shell uname -r)/build
ccflags-y += -ggdb3
#ccflags-y += -g
test:
$(MAKE) $(ccflags-y) -C $(KERNROOT) M=$(shell pwd)
但它不起作用。失败消息:
make: invalid option -- 'g'
make: invalid option -- 'g'
make: invalid option -- '3'
Usage: make [options] [target] ..
有什么帮助吗?非常感谢。请尝试通过.config文件启用它,即使编译外部模块,也会从中获取配置。您还可以从中启用它 让menuconfig>kernelhacking>compilekernelwithdebug-info
| | |调用make时,将
kcsflags=-ggdb3
放在正在使用的任何目标之前。例如,要使vmlinux、modules和bzImage启用ggdb3符号,请运行makeKCFlags=-ggdb3all
请注意,这与另一个答案中描述的仅启用内核调试符号不同。-ggdb3标志向默认情况下未包含的符号文件添加附加信息(例如宏定义)。
make CONFIG\u DEBUG\u INFO=y