5
我想調試我的內核模塊。對於我試圖把一個斷點do_one_initcall
在kernel
/module.c
只是我init_module
之前被調用,但它顯示通過KGDB調試模塊
在地址無法訪問內存 0x802010a0
下面是我的Makefile
使用:
obj-m := hello.o
KDIR=/lib/modules/$(shell uname -r)/build
PWD=$(shell pwd)
EXTRA_CFLAGS += -g
all:
make -C $(KDIR) M=$(PWD) modules
clean:
make -C $(KDIR) M=$(PWD) clean
請建議我可能是什麼問題。
我的'insmod'成功了,我看到我的'module_init' kprints int他'dmesg'。但我的'modprobe'失敗。因此'modinfo'也會失敗。你能否提供一些見解? – 2012-10-05 01:25:39
可能有幾個原因。最重要的是modprobe不知道你的模塊,因爲它諮詢了一個數據庫,所以你不能'modprobe my_module_file.ko'。相反,您需要在使用'depmod -a'將其插入數據庫後執行'modprobe my_module_name'。但爲了這個目的,這並不重要。你知道你的名字和文件名,所以你可以簡單地使用它們,而不是回答的建議。例如'MODULE_NAME = my_module_name; MODULE_FILE = my_module_file.ko' – Nir 2012-10-09 17:30:25
一個快速提示:你需要root獲得 cat/sys/module/module-name-here/sections /。* 東西工作..(否則它只顯示值0x0)。 – kaiwan 2015-04-03 02:42:57