2012-09-25 23 views
6

लोड करने योग्य लिनक्स कर्नेल मॉड्यूल के लिए डीबग-जानकारी कैसे बनाएं (जैसे कि vmlinux- uname -r .debug में कर्नेल की तरह?) क्या यह मॉड्यूल बनाने के दौरान उत्पन्न होता है, यदि ऐसा है तो यह कहां होगा स्थित?लोड करने योग्य कर्नेल मॉड्यूल के लिए डीबग-जानकारी

उत्तर

5

मान लें कि आपने कर्नेल को CONFIG_DEBUG_INFO के साथ बनाया है, डीबग प्रतीक पहले से ही मॉड्यूल के लिए .ko फ़ाइल में होना चाहिए। हालांकि मॉड्यूल को किसी भी पते पर गतिशील रूप से लोड किया जा सकता है, आपको जीडीबी को थोड़ी अधिक जानकारी देने की आवश्यकता है।

cd /sys/module/${MODNAME}/sections 
cat .text .data .bss 

आप इस जानकारी जब मॉड्यूल के बारे में GDB कह उपयोग कर सकते हैं:

(gdb) add-symbol-file ${MODPATH} ${TEXT} -s .data ${DATA} -s .bss ${BSS} 

एक ट्यूटोरियल कि लिनक्स फाउंडेशन की वेबसाइट पर इस से अवगत नहीं है। Kernel and Module Debugging with GDB

+0

क्या मैं ब्रेकपॉइंट्स और वॉचपॉइंट्स सेट कर सकता हूं? उस ट्यूटोरियल में उन्होंने उल्लेख किया है कि हम ब्रेकपॉइंट्स आदि सेट करने जैसे अधिक उन्नत नहीं कर सकते .. ?? और ये सब एक सिस्टम में सही किया जा सकता है? या फिर मुझे पीसी की जरूरत है? –

+0

होस्ट पर रहते हुए आप अपने होस्ट कर्नेल पर ब्रेकपॉइंट्स सेट करने में सक्षम नहीं होंगे। या तो एक वीएम में कर्नेल डीबग करें या सीरियल डीबग को किसी अन्य मशीन पर सेट करें ताकि आप डीबग के रूप में कर्नेल को रोक/शुरू कर सकें। – stsquad

4
#Modify your Makefile like this then build it 
#cat /sys/module/mydriver/sections/.text -> find the address 
#Then run like add-symbol-file drivers/mydrivers/mydriver.o address from above #line 
obj-m += module_name.o 
MY_CFLAGS += -g -DDEBUG 
ccflags-y += ${MY_CFLAGS} 
CC += ${MY_CFLAGS} 


all: 
     make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules 

debug: 
     make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules 
     EXTRA_CFLAGS="$(MY_CFLAGS)" 
clean: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean 
+0

इस लिंक के अनुसार हमें अपने मॉड्यूल की मेक फ़ाइल में -g झंडे जोड़ने की ज़रूरत नहीं है ... ?? https://www.linux.com/learn/kernel-newbie-corner-kernel-and-module-debugging-gdb –

संबंधित मुद्दे