2016-08-23 9 views
16

मैं का उपयोग कर एक अजगर स्क्रिप्ट में त्रुटि का निरीक्षण करना चाहते:पोस्ट-मॉर्टम डीबगिंग के दौरान ipdb को कैसे छोड़ें?

$ python3 -m pdb my_script.py 

इस से मैं कहाँ c निष्पादन जारी रख सकते हैं एक pdb शीघ्र में मुझे चला जाता है, और जब यह त्रुटि मारता है, मैं चर का निरीक्षण किया और फिर कर सकते हैं q मेरे खोल पर वापस जाने के लिए स्क्रिप्ट निष्पादन को छोड़ दें।

मैं, IPython डिबगर मॉड्यूल के साथ एक ही करने की कोशिश की है, क्योंकि यह अधिक रंगीन है:

$ python3 -m ipdb my_script.py 

हालांकि, मैं डिबगर छोड़ने के लिए सक्षम नहीं कर रहा हूँ एक बार मैं त्रुटि का निरीक्षण किया है। का उपयोग करते हुए q आदेश सिर्फ फिर से क्रियान्वित स्क्रिप्ट और पोस्टमार्टम मोड के बीच यह स्विचिंग रहता छोड़ने:

$ python3 -m ipdb my_script.py 
ipdb> c 
Uncaught exception. Entering post mortem debugging 
Running 'cont' or 'step' will restart the program 
ipdb> Inspect some variables at this point 
ipdb> q 
Post mortem debugger finished. The my_script.py will be restarted 
ipdb> q 
Uncaught exception. Entering post mortem debugging 
Running 'cont' or 'step' will restart the program 
ipdb> q 
Post mortem debugger finished. The my_script.py will be restarted 
ipdb> q 
Uncaught exception. Entering post mortem debugging 
Running 'cont' or 'step' will restart the program 
ipdb> q 
Post mortem debugger finished. The my_script.py will be restarted 
ipdb> q 
Uncaught exception. Entering post mortem debugging 
Running 'cont' or 'step' will restart the program 

यह कैसे डिबगर छोड़ने की?

+1

क्या^सी या^डी काम नहीं करता है? मैंने कभी-कभी कुछ समान प्राप्त किया है और – spruceb

+1

@spruceb से बाहर निकलने के लिए कई बार^सी करना था जो कि काम नहीं करता है! –

+0

सबसे खराब सबसे खराब आता है,^ज़ेड, फिर 'मार% 1' को इसे रोकना चाहिए – spruceb

उत्तर

2

यह IPython 5.1 में एक बग था। यह this pull request में तय किया गया था और अब IPython 5.2 और बाद में कोई समस्या नहीं है। अब आप q, quit(), या Ctrl + डी डीबगर से बाहर निकलने के लिए उपयोग कर सकते हैं।

15

उपयोगकर्ता @ffeast टिप्पणी के रूप में, an open ipdb issue है, और कुछ कामकाज सुझाए गए हैं। मेरे लिए ये अच्छी तरह से काम:

  • प्रेस ctrl + z
  • निष्पादित ipdb> import os; os._exit(1)
संबंधित मुद्दे