2012-11-27 5 views
23

मैं एक मॉड्यूल "मुख्य" डीबग करने का प्रयास कर रहा हूं, जो एक फ़ंक्शन "टूटा हुआ" "एक और_ मॉड्यूल" के 356 लाइन पर। मुझे उस फ़ंक्शन में कोई त्रुटि हो रही है और इसकी शुरुआत में ब्रेकपॉइंट रखना है। नीचे लिस्टिंग है। क्या मुझसे कुछ गलत हो रही है? कारण, ब्रेकपॉइंट काम नहीं करता है:किसी अन्य मॉड्यूल में ब्रेकपॉइंट कैसे सेट करें (फ़ंक्शन परिभाषा लाइन पर सेट न करें, अगर आप फ़ंक्शन प्रारंभ होने पर तोड़ना चाहते हैं)

$ python -m pdb main 
(Pdb) import sys 
(Pdb) sys.path.append("/home/user/path/to/another/module") 
(Pdb) import another_module 
(Pdb) b another_module:356 
Breakpoint 1 at /home/user/path/to/another/module/another_module.py:356 
(Pdb) c 
Traceback (most recent call last): 
... 
File "/home/user/path/to/another/module/another_module.py", line 383, in broken_function 
f=open("../jobs/temptree.tre", "r") 
IOError: [Errno 2] No such file or directory: '../jobs/temptree.tre' 
Uncaught exception. Entering post mortem debugging 
... 

उत्तर

13

आप ब्रेकपॉइंट सही ढंग से सेट कर रहे हैं। मुझे लगता है कि यह रोक नहीं रहा है क्योंकि जिस कोड को आप तोड़ रहे हैं उसे लाइन नहीं कहा जाता है। लाइन 383 पर ब्रेक डालें।

+0

बीटीडब्ल्यू, आप सुनिश्चित करने के लिए एक कठिन ब्रेकपॉइंट भी आज़मा सकते हैं। लाइन 383 डालें "आयात पीडीबी; पीडीबी.सेट_ट्रैस()" –

+0

अच्छा बिंदु, धन्यवाद! अब कोशिश करूँगा –

+0

आपकी सलाह पूरी तरह से काम करती है, लेकिन पीडीबी का व्यवहार मेरे लिए अजीब लगता है। लाइन 356 फ़ंक्शन की पहली पंक्ति है "def broken_function():"। अगर मैं अगली पंक्ति में ब्रेकपॉइंट डालता हूं, जहां टिप्पणी रहता है, तो पीडीबी "*** खाली या टिप्पणी" कहता है, जिसका अर्थ है कि रेखाओं की संख्या टूट नहीं जाती है। फ़ंक्शन के भीतर ब्रेकपॉइंट ठीक से काम करते हैं। अजीब ... आपके समाधान के लिए धन्यवाद! –

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

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