我修改我的模块Makefile,使kernel
模块带有-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] ..
有任何帮助吗?非常感谢。
答案 0 :(得分:0)
尝试通过.config文件启用它,即使是用于编译外部模块也可以从那里进行配置。 you can also refer from here您也可以从
启用它make menuconfig>核心黑客>使用调试信息编译内核
some reference | some more reference | kernel doc regarding gdb | kernel reference for gdb
答案 1 :(得分:0)
致电make时,请将KCFLAGS=-ggdb3
放在您使用的任何目标之前。例如,要使vmgglinux,模块和bzImage启用ggdb3符号,请运行make KCFLAGS=-ggdb3 all
。
请注意,这与另一个答案中描述的仅启用内核调试符号不同。 -ggdb3标志将默认情况下不包含的其他信息添加到符号文件中(例如宏定义)。