java - स्वचालित अपवाद हैंडलिंग




exception exception-handling (3)

मैं सोच रहा था कि कुछ मौजूद है (जावा दुनिया में) निम्नलिखित सुविधाओं के साथ जेवीएम चालू स्थिति का एक स्नैपशॉट लेने में सक्षम है:

  • ऐसा करते समय एक अपवाद फेंक दिया जा रहा है।
  • स्थानीय चर, विधि के तर्क, आदि पर कब्जा।
  • इसे एक आसान फाइल में रखें जिसका उपयोग आईडीई में आपके स्रोत कोड की स्थिति को निकालने या पुन: उत्पन्न करने के लिए किया जा सकता है।

दो प्रथम सुविधाओं की आवश्यकता है (तीसरा भयानक होगा) और यह उत्पादन के उपयोग के लिए उपयुक्त होना चाहिए (इसलिए, डीबगर्स के बारे में कोई रास्ता नहीं है)

यह पूछने से पहले मैंने WWW के माध्यम से खोज की (जब तक संभव हो) और मुझे कुछ संकेत मिले:

  • काजून इंटरसेप्टर : जैसा कि डीज़ोन पोस्ट में कहा गया है, यह एक निष्क्रिय जेवीएम एजेंट है जो तीन आवश्यकताओं को पूरा करता है! लेकिन, इसमें दो डाउनसाइड हैं: आपको इसके लिए भुगतान करना होगा और साइट नीचे है (शायद कोई भी भुगतान करने का कोई मौका नहीं है)
  • AviCode अवरोधन स्टूडियो : काजून की .NET बराबर बस के बारे में कुछ अंतर्दृष्टि देने के लिए
  • जावाफ़्रेम : ठीक है, यह एक ट्वीट है, लेकिन यह एक उपलब्ध एसवीएन रेपो के लिए इंगित करता है जिसमें एक जेवीएम एजेंट की सोर्स कोड (एमआईटी लाइसेंस के तहत) है जो ठीक दिखता है (मैं इसे करने की कोशिश कर रहा हूं)।

तो, शायद मैं एक गैर विद्यमान समाधान की तलाश कर रहा हूं? यह जरूरी नहीं है, लेकिन मुझे एक प्रोजेक्ट के लिए यह विचार था और यह "अज्ञात" (?) पथ का पता लगाने और वास्तविकता प्राप्त करने के लिए अच्छा होगा।

ऐसा लगता है कि यह एक जेवीएम एजेंट होगा ( उदाहरण के लिए जेवीएमटीआई से अपवाद घटना)।

आखिरकार, मैं अनुवर्ती अनुच्छेद को विकिपीडिया की अपवाद हैंडलिंग लेख से उजागर करता हूं:

रनटाइम इंजन वातावरण जैसे जावा या .नेट में, उपकरण मौजूद हैं जो रनटाइम इंजन से जुड़े होते हैं और हर बार ब्याज के अपवाद उत्पन्न होता है, वे उस समय की डीबगिंग जानकारी रिकॉर्ड करते हैं जो अपवाद को फेंका गया था (कॉल स्टैक और ढेर मान)। इन उपकरणों को स्वचालित अपवाद हैंडलिंग या त्रुटि अवरोधन उपकरण कहा जाता है और अपवादों के लिए 'मूल कारण' सूचना प्रदान करते हैं।

ये तो कमाल की सोच है। मुझे आशा है कि कोई मुझे कुछ जानकारी दे सकता है या भविष्य में, किसी को इस विनम्र पद से प्रेरणा मिल सकती है :)

धन्यवाद!


निश्चित नहीं है कि यह एक उत्पादन वातावरण में व्यवहार्य है, लेकिन सर्वज्ञ डीबगर है:

क्या होगा यदि आपका डीबगर "समय के पीछे पीछे जा सकता है?" क्या डीबगिंग करना आसान होगा? बस सभी चर असाइनों को रिकॉर्ड करके, यह अनिवार्य रूप से करना संभव है। यह सर्वज्ञ डीबगिंग के लिए अंतर्निहित विचार है अद्भुत हिस्सा यह है कि महत्वपूर्ण रूप से बड़े कार्यक्रमों को इस फैशन में डिबग किया जा सकता है - चींटी, जेयूनिट, खुद डीबगर

http://www.lambdacs.com/debugger/


आप उस काम की जांच कर सकते हैं जो नेटबैंस ने स्वचालित उपयोग लॉगिंग के बारे में किया है: http://wiki.netbeans.org/UsageLoggingSpecification

स्थानीय चर को डम्पिंग के रूप में, मैं सोचता हूं कि आप बस डिबगर का उपयोग कर सकते हैं, जैसे कि बजफ्फर 4life का उल्लेख किया


मैं जावा फ्रेम पर नजर डालता हूं और यह एक अच्छा शुरुआती बिंदु लगता है। बस अपाच ant स्थापित करें, javaframe निर्देशिका में ant करो और परीक्षण सूट (परीक्षण निर्देशिका के अंदर) को लॉन्च करें:

LD_LIBRARY_PATH=../build/native/ java -agentlib:frameintrospect -classpath ../build/classes/:. org.thobe.frame.Test

यह किसी भी स्थानीय चर नहीं मिलता है, लेकिन यह कोशिश करता है इसलिए, जैसा कि मैंने कहा, यह एक प्रारंभिक बिंदु हो सकता है मुझे इसके उपयोग के बारे में और अधिक जानने की उम्मीद है, लेकिन कोई समय नहीं और कोई दस्तावेज नहीं है (जावाफ्रेम नामित कई परियोजनाएं हैं) खराब परिस्थितियां हैं

शायद कुछ दिन इसे फिर से किया जा सकता है हां फिर से। Cajoon था, यह आशाजनक और चमकदार लग रहा था लेकिन इसकी वेबसाइट नीचे है और कोशिश करने के लिए किसी भी डाउनलोड करने योग्य जार का कोई निशान नहीं है।

सभी को धन्यवाद!

पीडी .: बस संदर्भ के लिए, शोध करते समय कुछ लिंक मिलते हैं I





agent