2013-10-03 5 views
8

मैं डी प्रोजेक्ट स्रोत कोड कोड डीबग करने के लिए जीडीबी का उपयोग कर रहा हूं। मैं के रूप में दिखाया संकलन:कोई स्रोत फ़ाइल main.c. नाम नहीं है जीडीबी ब्रेक पॉइंट सेटिंग

./configure --enable-debug CFLAGS="-g -o0" 
make --debug=a 

मैं विशिष्ट फ़ाइल पर रोक डिबगिंग करना चाहते हैं। तो जब मैं

(gdb) break main.c:672 

का उपयोग करके तोड़ बिंदु निर्धारित इसे कहते हैं:

No source file named main.c. 

यहां तक ​​कि जब मैं विशेष समारोह का नाम (main.c फ़ाइल में) को तोड़ने के लिए गुजरती हैं। यह कहता है: इस तरह के कार्य परिभाषित नहीं किया गया है।

मेरी वर्तमान निर्देशिका में यह main.c फ़ाइल है। मैं विंडोज पर सिगविन का उपयोग कर रहा हूँ। जब मैं

(gdb) break main 

यह सिग्विन फ़ाइल के मुख्य फ़ंक्शन पर ब्रेक पॉइंट सेट करता है, न कि मेरे स्रोत कोड में।

  1. मैं अपनी पहली समस्या को कैसे ठीक कर सकता हूं?

  2. सिर्फ उत्सुकता, दूसरी समस्या से बचने के लिए, यदि सिग्विन फाइलों और मेरे स्रोत कोड में समान फ़ंक्शन नाम है? लोड डिबगिंग प्रतीकों के लिए

    gcc filename.c -g 
    
    gdb <binary name> 
    

    खोजें किया या नहीं:

उत्तर

2

देखें आप -g और अभी भी एक ब्रेकपाइंट सेट करने में सक्षम नहीं के साथ संकलन कर रहे हैं, के बाद यह हिट अपने main() में raise(SIGTRAP) जोड़ने का प्रयास करें, gdb में प्रक्रिया को चलाने, तो ब्रेकप्वाइंट आप फिर से चाहते हैं निर्धारित SIGTRAP

5

जब आप अपने .c फ़ाइल संकलन, सुनिश्चित करें कि आप का उपयोग कर?

नहीं हैं:

gdb) symbol-file <path-of-symbol-file> 

आप obj निर्देशिका में प्रतीक फ़ाइल पा सकते हैं

+0

.libs/slim से प्रतीकों को पढ़ना ... किया गया।यह संदेश दिखाता है, मुझे लगता है कि लोडिंग प्रतीक ठीक है। – arslan

+0

आप पूरी समस्या का स्नैपशॉट पोस्ट कर सकते हैं इसका मतलब है कि आप –

+0

को संकलित कैसे कर रहे हैं, मैंने संकलन जानकारी जोड़ा है, कृपया – arslan

1

जब भी आप GDB उपयोग करने के लिए, टाइप कमांड लाइन

gcc -g -o outputfile sourcefile.c 

में निम्नलिखित अब टाइप

gdb -tui outputfile 

और उसके बाद ब्रेक कमांड

+0

gdb -tui outputfile। मैं इसे चलाता हूं और इसने टर्मिनल के शीर्ष पर एक क्षेत्र खोला है, इसमें संदेश "कोई स्रोत उपलब्ध नहीं है"। इसके बाद मैंने ब्रेक सेट करने की कोशिश की, और वही "main.c. नाम की कोई स्रोत फ़ाइल नहीं" संदेश। – arslan

+0

कृपया मेरे संकलन आदेश देखें, क्या कोई समस्या है? – arslan

2

संकलन के दौरान जीसीसी पैरामीटर-जी है।

बाकी सब कुछ माध्यमिक है।

breakpoints in GDB

2

मुझे भी इसी तरह की समस्या का सामना करना पड़ा। मैंने अभी हटा दिया है। मेटाडाटा फ़ोल्डर और फिर से विशेष परियोजना आयात की और यह अच्छी तरह से काम करता है।

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