मैं एक पायथन प्रोग्राम डीबग करने की कोशिश कर रहा हूं और मैंने एक स्टैक ट्रेस उत्पन्न करने वाले कॉल से ठीक पहले, एक फ़ंक्शन में क्लासिक 'आयात pdb; pdb.set_trace()' पंक्ति डाली। हालांकि उस कॉल को अनदेखा किया जा रहा है, यानी कुछ भी नहीं होता है और मुझे पीडीबी प्रॉम्प्ट नहीं मिलता है।क्या pdb.set_trace() को अनदेखा किया जा सकता है?
कार्यक्रम के उस बिंदु पर, केवल एक सक्रिय धागा है। पीडीबी मॉड्यूल का कोई बंदर पैचिंग नहीं मिला था।
क्या कॉल set_trace करना पड़ सकता है पर कोई मदद को नजरअंदाज किया जा करने के लिए स्वागत है। धन्यवाद।
प्लेटफार्म की जानकारी: डेबियन निचोड़ + अजगर 2.6.5
कोड निकालने:
import threading
print threading.active_count()
import pdb
print pdb
pdb.set_trace()
print "*****"
root_resource.init_publisher() # before changing uid
उत्पादन:
<lots of stuff>
1
<module 'pdb' from '/usr/lib/python2.6/pdb.pyc'>
*****
<stack trace in init_publisher>
क्या आप इसे पुन: पेश करने के लिए कोड प्रदान कर सकते हैं? क्या 'प्रिंट' कॉल वहां से काम करते हैं? क्या आपने 'pdb.pm()' कोशिश की है? (http://docs.python.org/library/pdb.html#pdb.pm) – katrielalex
दुर्भाग्यवश मैं इसे आसानी से पुन: उत्पन्न करने में सक्षम नहीं हूं (अन्यथा मैं अब तक इसे दबा दूंगा)। प्रिंट काम, pdb.pm() विफल रहता है क्योंकि उस बिंदु पर मेरे पास कोई स्टैक ट्रेस नहीं है (और अपवाद कुछ सी एक्सटेंशन द्वारा बाद में खाया जाता है, इसलिए मैं आसानी से pm() और पायथन -i –