2011-02-04 30 views
13

मुझे रिमोट डीबगिंग के साथ कोई समस्या है।जीडीबी रिमोट क्रॉस डीबगिंग "रिमोट 'जी' पैकेट उत्तर के साथ विफल रहता है बहुत लंबा है"

मेजबान: ubuntu के साथ लैपटॉप इंटेल i5 10.10 86 लक्ष्य: क्यूटी निर्माता 2.1RC और Qt4.7.1 पुस्तकालयों: फ्रीस्केल iMX35 (iMX35 PDK) 11 विकास पर्यावरण हाथ। रास्ते में शाखा संकलक: /opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin

हाथ-नन-linux-gnueabi- जीसीसी-4.1.2 हाथ-नन-linux-gnueabi-objdump हाथ-नन-linux-gnueabi-addr2line हाथ-नन-linux-gnueabi-gccbug
हाथ-नन-linux-gnueabi-ranlib हाथ-नन-Linux- gnueabi-ar
arm-none-linux-gnueabi-gcov arm-none-linux-gnueabi-readelf arm-none-linux-gnueabi-
arm-none-linux-gnueabi-run arm-none-linux- gnueabi-C++
arm-none-linux-gnueabi-size arm-none-linux-gnueabi-C++ filt
arm-none-linux-gnueabi-gprof arm-none-linux-gnueabi-strings arm-none-linux-gnueabi-cpp arm-none-linux-gnueabi-ld
arm-none-linux-gnueabi-strip arm -none-linux-gnueabi-जी ++
हाथ-नन-linux-gnueabi एनएम हाथ-नन-linux-gnueabi-जीसीसी
हाथ-नन-linux-gnueabi-objcopy

लक्ष्य एक परियोजना डिबग करने के लिए है क्यूटी के साथ बनाया गया। इसलिए मैंने बस एक क्यूटी त्वरित परियोजना बनाई -> क्यूटी त्वरित अनुप्रयोग जो एक साधारण हैलो वर्ल्ड एप्लिकेशन (सी ++/क्यूएमएल) बनाता है मैं इसे संकलित करता हूं (डीबग या रिलीज में) और यह लक्ष्य पर ठीक काम करता है। तो मुझे पूरा यकीन है कि क्रॉस संकलन समस्या से संबंधित नहीं है जो मैं आपको दिखाऊंगा।

मैं gdb 7.2 डाउनलोड किया है और निम्नलिखित कार्रवाई:

$ निर्यात पथ =/opt/फ्रीस्केल/usr/स्थानीय/जीसीसी-4.1.2-glibc-2.5 NPTL -3/हाथ-नन -Linux-gnueabi/बिन: $ पथ
$ सीडी /home/elux/iMX35/gdb-7.2/
$ कॉन्फ़िगर --target = हाथ-नन-linux-gnueabi --build = i686
$ बनाने
$ sudo

$ निर्यात सीसी = arm-none-linux-gnueabi-gcc
$ निर्यात एलडी = हाथ-नन-linux-gnueabi-ld
$ सीडी gdb/gdbserver/
$ कॉन्फ़िगर --build = i386 --host = हाथ-नन-linux-gnueabi --target = हाथ -none-Linux- gnueabi
$

बनाने

$ sudo सीपी gdbserver/घर/ELUX/MX35/ltib/rootfs/usr/bin/(लक्षित करने के लिए gdbserver कॉपी करने के लिए)

तब पर

लक्ष्य:

$ gdbserver 10.10.10।1: 4000 टेस्ट
प्रक्रिया परीक्षण बनाया गया; पीआईडी ​​= 2194
पोर्ट 4000

पर सुनकर लक्ष्य पर:

$ हाथ-नन-linux-gnueabi-gdb टेस्ट (टेस्ट पार संकलित यह है डिबग मोड में क्यूटी निर्माता) जीएनयू gdb (GDB) 7.2
कॉपीराइट (सी) 2010 फ्री सॉफ्टवेयर फाउंडेशन, Inc
लाइसेंस GPLv3 +: जीएनयू जीपीएल संस्करण 3 या बाद में http://gnu.org/licenses/gpl.html
यह मुफ्त सॉफ्टवेयर है: आप बदल सकते हैं और यह पुन: वितरित करने के लिए स्वतंत्र हैं।
कानून द्वारा अनुमत सीमा तक कोई वारंटी नहीं है। विवरण के लिए "शो कॉपीिंग"
और "वारंटी दिखाएं" टाइप करें।
यह जीडीबी "--host = i686 --target = arm-none-linux-gnueabi" के रूप में कॉन्फ़िगर किया गया था।
बग रिपोर्टिंग के लिए, कृपया देखें:
http://www.gnu.org/software/gdb/bugs/ ...
पढ़ना /home/elux/iMX35/ltib/rpm/BUILD/qt-everywhere-opensource-src-4.7.1/मंच/टेस्ट से प्रतीकों निर्माण हाथ/टेस्ट ... किया।
(gdb) को लक्षित दूरस्थ 10.10.10.2:4000
रिमोट डीबगिंग का उपयोग करने 10.10.10.2:4000
चेतावनी: एक्सएमएल लक्ष्य वर्णन पार्स नहीं कर सकता; एक्सएमएल समर्थन संकलन समय
चेतावनी: अक्षम गतिशील लिंकर ब्रेकपॉइंट फ़ंक्शन खोजने में असमर्थ था।
GDB साझा लाइब्रेरी initializers
डिबग और स्पष्ट रूप से भरी हुई गतिशील कोड को ट्रैक करने में असमर्थ होंगे।
0x400007e0 में ??()
(gdb)

और

(gdb) सेट solib-निरपेक्ष-उपसर्ग/घर/ELUX/iMX35/ltib/rootfs/
पढ़ना प्रतीकों से/घर/ELUX/iMX35/ltib/rootfs/lib/ld-linux.so.3 ... किया।
/home/elux/iMX35/ltib/rootfs/lib/ld-linux.so के लिए लोड किए गए प्रतीकों।3

लेकिन

(gdb) सेट वास्तुकला ARMv5TE
लक्ष्य वास्तुकला ARMv5TE होने की
रिमोट 'जी' पैकेट जबाब माना जाता है बहुत लंबा है: 00000000a7ee8ebe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b0ed8ebe00000000e007004010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000

(gdb) मुख्य
रिमोट 'जी' पैकेट जबाब ख बहुत लंबा है: 00000000a7ee8ebe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b0ed8ebe00000000e007004010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

क्या आपको पता है क्या इस समस्या से संबंधित है मिल गया है? मैं इसे कैसे हल कर सकता हूं?

उत्तर

7

मुझे एक ही समस्या थी जो एक आई 5 मशीन पर उबंटू 11.10 64 बिट पर एक फ्रीस्केल एआरएम डीबग करने का प्रयास कर रही थी।

मेरे लिए काम किया गया फिक्स - साथ-साथ ध्वज जीडीबी कॉन्फ़िगर करते समय निर्दिष्ट करना था। मुझे libexpat1-dev पैकेज भी स्थापित करना पड़ा।

Explanation here

+0

यह सही उत्तर है। – BHS

13

जैसा कि मैंने Ubuntu 12.04 (x86_64) पर हाल ही में इस में पड़ गए और एक अलग तरीके से इसे हल, मैंने सोचा कि मैं टिप्पणी चाहते हैं। इस मामले में किकर यह है कि उबंटू में libexpat सक्षम के साथ gdb लगता है। कुछ बाद में फेर-और यह मेरे लिए इसे हल:

सेट वास्तुकला i386: x86-64: इंटेल

तो यह प्रतीत होता है जब वहाँ आर्किटेक्चर के एक बेमेल है और साथ ही इस परिणाम कर सकते हैं।

+2

ओपी के बारे में नहीं पता लेकिन यह मेरी समस्या को ठीक करता है। बहुत बहुत धन्यवाद। –

+2

यदि आर्किटेक्चर को सेट करने के बाद समस्या बनी रहती है, तो यह एक रजिस्टर-आकार-स्विचिंग समस्या हो सकती है: http://stackoverflow.com/a/34304137/151464 –

9

मैं इसके बजाय gdb-multiarch का उपयोग करने और मेरी समस्या का समाधान करने में सक्षम था।