2012-10-19 13 views
17

मुझे एक साझा लाइब्रेरी (गतिशील रूप से लोड) के साथ एक प्रोजेक्ट मिला है, और मैं इसे डीबग करने का प्रयास कर रहा हूं। अन्य धागे की खोज हो रही है"कोई स्रोत फ़ाइल नाम नहीं है" त्रुटि डीबगिंग ग्रहण सीडीटी

No source file named /home/username/Code/path/to/project/MyFile.cpp. 

के बाद, मैं यह सुनिश्चित किया है कि मैं जी के साथ संकलन कर रहा हूँ, और कहा कि उपयुक्त फ़ोल्डरों डिबग विन्यास की स्रोत पथ टैब पर हैं: मैं निम्न त्रुटि संदेश मिलता है। अजीब बात यह है कि यह सही पूर्ण पथ दे रहा है: फ़ाइल का संदर्भ मौजूद है, इसलिए मुझे समझ में नहीं आता कि ऐसा क्यों नहीं लगता है कि यह वहां है।

किसी को भी पता है कि इस बारे में क्या करना है?

उत्तर

22

मैं बस एक ही मुद्दे पर आया, हालांकि मेरे ब्रेकपॉइंट निष्पादन योग्य में थे, साझा लाइब्रेरी में नहीं। चुनने के लिए "अन्य का चयन करें ..." बनाएं प्रक्रिया

  • तल में, वहाँ एक कड़ी है: इस समस्या के समाधान के लिए, मैं, "डीबग विन्यास" खुला मेरी डिबग विन्यास का चयन करें और निम्न सेटिंग एडजस्ट करना पड़ा लांचर। लिंक पर क्लिक करें। "कॉन्फ़िगरेशन विशिष्ट सेटिंग्स का उपयोग करें" पर निशान लगाएं। और प्रेस "ठीक है" "मानक प्रक्रिया लांचर बनाएँ" का चयन करें।
  • "डीबगर" टैब पर जाएं, और टैब के शीर्ष पर "डीबगर: जीडीबी/मील" चुनें। क्या/एक फर्क नहीं हो सकता है: एक ही टैब पर वहाँ भी एक चेकबॉक्स है "breakpoints सेट करने के लिए पूर्ण फ़ाइल पथ का उपयोग करें" - मैं इस के साथ खेला जाता है, लेकिन यह मुद्दा हम देख प्रभावित करने के लिए नहीं लगता है (जाहिर है, हमारे स्रोत पथ पहले से ही पूर्ण पथ हैं)।

साझा पुस्तकालयों में breakpoints के लिए, आप Debugging with eclipse cdt and gdb और Why does eclipse cdt ignore breakpoints से अतिरिक्त जानकारी (विशेष रूप से के बारे में टाल breakpoints) आवश्यकता हो सकती है।

नोट: यह ग्रहण केप्लर (4.3) और जीडीबी 7.4 को संदर्भित करता है।

+2

अच्छा जवाब, मुझे लगता है कि यह सही है। आप भी इस प्रश्न/.answer को भी देखना चाहेंगे: http://stackoverflow.com/q/801423/1284631 – user1284631

+0

मेरे मामले में, उपरोक्त सभी चरणों को व्यर्थ में करने के बाद, यह समाप्त हो गया कि एक नया संस्करण स्थापित करना जीडीबी (7.4) इसे ठीक किया। – harish

0

मुझे एक ही समस्या थी लेकिन मेरा समाधान अलग था। प्रोजेक्ट "डीबग/src" + "रिलीज/src" निर्देशिका खोलें और सुनिश्चित करें कि कोई [filename] .d फ़ाइलें नहीं हैं जिनमें किसी भी स्रोत फ़ाइलों का नाम शामिल है जो उनके नाम बदल सकते हैं या जो अब मौजूद नहीं हैं। मेरे पास एक था, इसे हटा दिया गया, और चूंकि कोई और त्रुटि नहीं हुई।

इसलिए मुझे लगता है कि कम से कम मेरे मामले में, त्रुटियों को उन वस्तुओं द्वारा बनाया गया है जो दायरे से बाहर हो गए हैं।

2

मैं एक ही समस्या थी, लेकिन मेरे मामले में यह मेरी गलती थी। मेरी कुछ परियोजनाओं को रिलीज कॉन्फ़िगरेशन पर सेट किया गया था और डीबगर स्वाभाविक रूप से स्रोत फ़ाइल जानकारी नहीं ढूंढ सका।

+0

मुझे एक ही समस्या थी। मैं '-DCMAKE_BUILD_TYPE = डीबग 'का उपयोग करके अपने सीएमके परियोजना को कॉन्फ़िगर करना भूल गया। – Ignitor

1

मैं एक ही समस्या थी। मैं अपने प्रोग्राम की तुलना में एक अलग जगह में संकलित एक साझा लाइब्रेरी फ़ाइल (.so) में ब्रेकपॉइंट सेट नहीं कर सका। इसे ठीक करने के:

  1. जाओ डीबग विन्यास, स्रोत टैब पर
  2. एक संकलन निर्देशिका जोड़ें (मैं मुख्य makefile कि सभी प्रक्रियाओं को संकलित करता है के स्थान के लिए इस्तेमाल किया, न कि जहां इस प्रक्रिया के लिए makefile स्थित है)।
  3. भी क्लिक करें (मेरी उपप्रक्रिया makefile मुख्य स्थान की उप-निर्देशिका के संकलित किया गया है)

मैं पता लगा नहीं किया है कि कैसे सभी डिबग विन्यास भविष्य के लिए यह परिवर्तन करने के लिए "उप-निर्देशिकाएं भी संकलन के लिए उपयोग किया जाता है" और अतीत है कि मुझे हर बार इस निर्देशिका को जोड़ने की ज़रूरत नहीं है, लेकिन अगर मैं इसे समझता हूं तो मैं बाद में अपडेट करने की कोशिश करूंगा। मेकफ़ाइल परियोजना मौजूदा कोड के लिए

-1

। चरण 1 जांच के साथ सभी स्रोतों को संकलित करें -g -o0 चरण 2 gdbserver और arm-yourversion-gdb का उपयोग करें जो आपके एसडीके और जीडीबी टूलचेन में प्रदान किया जाएगा।

0

यह हो सकता है यदि आपके पास सिगविन और मिंगव (या कुछ अन्य संस्करण) दोनों हैं। यदि स्रोत को संकलित करने के लिए साइगविन से जीसीसी का उपयोग किया जाता है तो आपके पास निष्पादन योग्य में साइगविन पथ होगा। फिर, यदि डीबगर mingw से है, तो gdb साइगविन पथ की व्याख्या करने में सक्षम नहीं होगा। इसे हल करने का सबसे आसान तरीका रन -> डीबग कॉन्फ़िगरेशन -> डीबगर पर जाना है और साइगविन जीडीबी (सी: \ cygwin64 \ bin \ gdb.exe) पर पूरा पथ सेट करना है। इससे मेरे लिए समस्या हल हो गई।

0

मैंने डीबग कॉन्फ़िगरेशन सेटिंग्स में डीबगर टैब पर @ एंड्रियास फेस्टर की टिप्पणी का पालन किया लेकिन "डीबगर: जीडीबी/मील" नहीं मिला, लेकिन स्रोत टैब में, मैंने सभी आइटम हटा दिए और क्लिक करके "पूर्ण फ़ाइल पथ" जोड़ा खिड़की के दाहिने तरफ "जोड़ें ..." बटन। इससे मुझे इस समस्या पर मदद मिली

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