2011-03-02 19 views
24

पर्ल डीबगर में, यदि आप बार-बार कोड की सेगमेंट को वर्तमान लाइन से दूर लेते हैं, तो आप . (डॉट) कमांड दर्ज करके वर्तमान लाइन पर वापस जा सकते हैं।मैं पाइथन पीडीबी में वर्तमान लाइन कैसे सूचीबद्ध करूं?

मैं अजगर पीडीबी मॉड्यूल का उपयोग कर तुलनात्मक कुछ भी नहीं ढूंढ पा रहा हूं। अगर मैं सूची खुद को वर्तमान लाइन से दूर कर दूंगा और इसे फिर से देखना चाहता हूं, ऐसा लगता है कि मुझे या तो उस लाइन नंबर को याद रखना है जो वर्तमान में निष्पादित (मेरे लिए असंभव) था या एक कथन निष्पादित करता है (अक्सर अवांछनीय)।

क्या मुझे कुछ याद आ रही है?

उत्तर

12

ठीक है, मुझे नहीं लगता कि . पर पेर्ल डीबगर में एक कमांड है, लेकिन आप हमेशा where/w कमांड का उपयोग कर वर्तमान लाइन पा सकते हैं। यह आपको वर्तमान (प्रासंगिक) फ्रेम के साथ-साथ सबसे हालिया फ्रेम दिखाएगा, जो मुझे विश्वास है कि डीबगर ट्रिगर किया गया था।

+0

मैं "जहां 'का उपयोग कर वापस पाने के लिए के बारे में सोच नहीं था। यह आदर्श की तुलना में कम है, लेकिन निश्चित रूप से की तुलना में कुछ भी नहीं है। धन्यवाद बेहतर है! – zenzic

7

शायद आपको ipython या ipdb, pdb के लिए एक रैपर का प्रयास करना चाहिए।

ipdb आपको क्रमांकित रेखाएं, रंगीन वाक्यविन्यास, टैब पूर्णता और बहुत कुछ देता है।

+0

ipdb अद्भुत है, लेकिन यह सवाल करने के लिए प्रासंगिक नहीं है – ospider

25

देर लेकिन उम्मीद है कि अभी भी सहायक है।

alias ll u;;d;;l 

इसके बाद जब भी आप टाइप ll, pdb वर्तमान स्थिति से सूची जाएगा: निम्न अन्य नाम बनाएं। यह ढेर ऊपर जाकर और फिर ढेर के नीचे काम करता है, जो वर्तमान स्थिति से दिखाने के लिए 'एल' रीसेट करता है। (यदि आप स्टैक ट्रेस के शीर्ष पर हैं तो यह काम नहीं करेगा।)

+0

सरल और मेरे लिए काम किया। इसे उत्तर के रूप में चिह्नित किया जाना चाहिए! – trinth

+1

यह आदेश बहुत आसान है। समय बचाने के लिए, आप इसे '.pdbrc' फ़ाइल में जोड़ सकते हैं, इसलिए आपको इसे हर बार दर्ज नहीं करना है (वर्णित [यहां] (https://docs.python.org/3/library/pdb.html#debugger-commands)) –

+0

यहां तक ​​कि 'उपनाम। u ;; d ;; l' works ;-) – kxr

9

पायथन 3.2 और उच्चतम में, आप सूची स्थान को रीसेट करने के लिए list . का उपयोग कर सकते हैं।

Source: Python Bug tracker #4179

+0

धन्यवाद, बहुत हेलफुल। +1 – Sabuncu

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