2014-09-01 3 views
7

मैंने सर्वर मशीन चलाने वाले सर्वर पर मेरी होम निर्देशिका में स्रोत से gdb 7.8 संकलित किया है। मैं पहले gdb 7.6 का उपयोग कर रहा था, और gdb के साथ स्थिरता समस्याओं से अलग (अपग्रेड का कारण) सब कुछ ठीक काम करता था।पायथन अपवाद <प्रकार 'अपवाद। आयात करें'> कोई मॉड्यूल नाम नहीं है gdb:

gdb के उन्नयन के बाद से, जब मैं cgdb 0.6.7 चलाने मैं तुरंत निम्न संदेश मिलता है:

Python Exception <type 'exceptions.ImportError'> No module named gdb: 

warning: 
Could not load the Python gdb module from `/home/username/bin/gdb//python'. 
Limited Python support is available from the _gdb module. 
Suggest passing --data-directory=/path/to/gdb/data-directory. 

जब मैं gdb बनाया, मैं ./configure --with-python इस्तेमाल किया।

जब मैं cgdb चलाने के लिए और मेरा कार्यक्रम एक segfault तक पहुँच जाता है, मैं backtrace टाइप करें और निम्न संदेश मिलता है:

अजगर अपवाद नहीं मॉड्यूल नामित gdb.frames:

तो यह मैं की तरह लगता है पाइथन समर्थन के बिना प्रभावी ढंग से gdb/cgdb का उपयोग करने में असमर्थ हूं। इसके समाधान के लिए क्या किया जा सकता है?

FWIW; मैं python का उपयोग नहीं करता, मैं आमतौर पर c++ लिखता हूं।

उत्तर

11

आपको "--data-directory" का मान निर्दिष्ट करना चाहिए। उदाहरण के लिए, यदि आप का निर्माण निर्देशिका से gdb लोड, कमांड होना चाहिए:

./gdb -data-directory ./data-directory 

फिर gdb पता कर सकते हैं जहां python मॉड्यूल खोजने के लिए।

आप इसे discussion देख सकते हैं।

+1

मेरे पास उस फ़ोल्डर में 'डेटा-निर्देशिका' नहीं है जहां 'gdb' बाइनरी है, इसलिए यह परिणाम एक ही त्रुटि में कर रहे हैं। – arman

+0

@ अरमान: मुझे लगता है कि आपको gdb के लिए बिल्ड फ़ोल्डर के रूप में '-डेटा-निर्देशिका' मान निर्दिष्ट करना चाहिए। –

+1

यदि आपके पास अब 'डेटा-निर्देशिका' वाला स्रोत पेड़ नहीं है, तो आप '/ path/to/your/gdb --data-directory =/usr/share/gdb' (या जहां भी आपका डिस्ट्रो इसे रखता है))। –

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