मैं लक्ष्य मशीन के रूप में ARMv7
का उपयोग कर रहा हूं। मैंने लक्ष्य के लिए लिनक्स स्रोत 2.6.34.13
संकलित किया है।एआरएम पर kgdb का उपयोग कैसे करें ??
लक्ष्य मिनीकॉम का उपयोग कर धारावाहिक बंदरगाह के माध्यम से होस्ट (लिनक्स विकास मशीन) से जुड़ा हुआ है।
लक्ष्य नए कर्नेल के साथ लोड किया गया है और कमांड प्रॉम्प्ट में केजीडीबी सक्षम है।
$ echo ttyAMA0 > /sys/module/kgdboc/parameters/kgdboc
$ echo g > /proc/sysrq-trigger
केजीडीबी दर्ज करना ... संदेश प्रदर्शित होता है और आदेशों के लिए प्रतीक्षा करता है।
होस्ट पक्ष में,
$arm-none-linux-gnueabi-gdb vmlinux
gdb > set remotebaud 115200
gdb > set debug remote 1
gdb > target remote /dev/ttyS0
इस के बाद, कुछ आदेश संचार डिफ़ॉल्ट रूप से जगह लेता है।
qSupported
होस्ट से लक्ष्य में भेजा जाता है। लेकिन qSuppoted लक्ष्य द्वारा समर्थित नहीं है इसलिए $ # 00 वापस आ गया है। इसी तरह?
,HC-1
आदेश भेजे गए थे लेकिन उचित प्रतिक्रिया प्राप्त हुई।लेकिन
qOffsets
कमांड से कोई प्रतिक्रिया प्राप्त नहीं हुई है।
मुझे vmlinux पर संदेह है। अगर मैं gdb में list
देते हैं, अपने कोड के 10 लाइनों दिखाई नहीं दे रहा क्योंकि बजाय इसे
arch/arm/kernel/head.S : No such file or directory.
नोट :: कर्नेल संकलन सर्वर में किया कहते हैं। इसलिए विकास मशीन में कोई स्रोत उपलब्ध नहीं है। लेकिन आर्म-जीडीबी सिर की तलाश में है। ऐसा लगता है।
मुझे यकीन नहीं है कि मैं क्या गलती कर रहा हूं। मुझे पूरे कर्नेल के लिए लोड होने के लिए प्रतीकों की आवश्यकता है। इस संबंध में मुझे गाइड करें।
मुझे यकीन नहीं है, लेकिन क्या आपके पास डिबगिंग के लिए "होस्ट" पर संकलित कर्नेल है? और आपने कहीं और कोड नहीं ले जाया है? – anishsane
यही कारण है कि यह स्रोत खोजने में असमर्थ है? – anishsane
क्या 'kgdb' को स्रोत कोड उपलब्ध होने की आवश्यकता है? शायद कोड की तलाश न करने के लिए 'kgdb' बताने के लिए एक कमांड लाइन विकल्प है। – BenjiWiebe