2012-08-10 5 views
5

जब भी मेरा प्रोग्राम एक अनचाहे अपवाद उठाता है, तो मैं pydev को एक इंटरैक्टिव कंसोल मोड में दर्ज करना चाहता हूं लेकिन मैं यह नहीं समझ सकता कि इसे कैसे किया जाए। जैसा कि यह अब व्यवहार करता है, अपवाद की सूचना दी जाती है और प्रक्रिया को निरंतर समाप्त कर दिया जाता है।मैं pydev में पोस्ट मॉर्टम डीबगिंग कैसे सक्षम करूं?

बाद मैं चारों ओर कुछ खोज पाया इस: http://sourceforge.net/tracker/index.php?func=detail&aid=3029746&group_id=85796&atid=577332 जो, pydevd.set_pm_excepthook()

उपयोग करने के लिए हालांकि पता चलता है जब मैं अपने कोड में जोड़ने

import pydevd 
pydevd.set_pm_excepthook() 

, मैं एक अपवाद प्राप्त करें:

This function is now replaced by GetGlobalDebugger().setExceptHook and is now controlled by the PyDev UI.') 
DeprecationWarning: This function is now replaced by GetGlobalDebugger().setExceptHook and is now controlled by the PyDev UI. 

लेकिन:

GetGlobalDebugger().setExceptHook() 

काम नहीं लग रहा है, GetGlobalDebugger() वैश्विक नामस्थान में मौजूद नहीं है।

+0

मुझे पता चला कि कैसे, लेकिन ऐसा लगता है कि मैं 8 घंटे के भीतर अपने प्रश्न का उत्तर नहीं दे सकता, इसलिए मुझे लगता है कि मुझे इंतजार करना चाहिए। –

उत्तर

4

दरअसल, आपको इसे प्रोग्रामिक रूप से करने की आवश्यकता नहीं है ... आप डीबग परिप्रेक्ष्य> pydev> अपवाद ब्रेकपॉइंट प्रबंधित कर सकते हैं और 'बेजोड़ अपवादों पर निलंबित' की जांच कर सकते हैं।

+0

ओह, यह आसान है। सोचा था कि इस तरह एक विकल्प होना चाहिए, लेकिन इसे वरीयताओं में या डीबग कॉन्फ़िगरेशन में नहीं मिला। पारितोषिक के लिए धन्यवाद। –

+0

इसमें कौन सा प्रोग्राम है? – Seanny123

+0

यह तब होता है जब PyDev के अंदर विकसित होता है: http://pydev.org/ –

2

ठीक है, तो थोड़ी देर मैं स्पष्ट पता लगा के बाद, कोड होना चाहिए:

import pydevd 
pydevd.GetGlobalDebugger().setExceptHook(Exception, True, False) 

किसी भी unhadled अपवाद कैप्चर करने के लिए। विधि डिबग मोड में प्रवेश करने के अन्य तरीकों से इस्तेमाल किया जा सकता है जब कार्यक्रम दुर्घटनाओं, के रूप में डॉक setExceptHook की में प्रलेखित:

अपवाद स्थापित करने के लिए बुलाया जाना चाहिए नियंत्रित किया जा करने के लिए है और यह है कि क्या पर तोड़ना चाहिए uncaught और अपवाद पकड़े गए।

कुछ अपवादों को रोकने के लिए पैरामीटर प्राप्त कर सकते हैं।

E.g.: 
     set_pm_excepthook((IndexError, ValueError), True, True) 

     or 

     set_pm_excepthook(IndexError, True, False) 

     if passed without a parameter, will break on any exception 

    @param handle_exceptions: exception or tuple(exceptions) 
     The exceptions that should be handled. 

    @param break_on_uncaught bool 
     Whether it should break on uncaught exceptions. 

    @param break_on_caught: bool 
     Whether it should break on caught exceptions. 

मुझे आशा है कि यह जो दूसरों के लिए एक कार्यक्रम डिबगिंग के बाद एक अपवाद उठाया गया के लिए ग्रहण में Pydev डिबगर उपयोग करना चाहता है में मदद करेंगे।