ग्रहण डीबगिंग एजेंटों के रूप में संदर्भित होता है।
जेवीएम, जो अनुपालन ".class" स्रोत चलाता है, में एक सुविधा है जो बाहरी पुस्तकालयों (जावा या सी ++ में लिखी गई) को रनटाइम के दौरान जेवीएम में इंजेक्शन देने की अनुमति देती है। इन बाहरी पुस्तकालयों को एजेंटों के रूप में जाना जाता है और उनके पास .class फ़ाइलों की सामग्री को संशोधित करने की क्षमता है। इन एजेंटों कि एक नियमित जावा कोड JVM के अंदर चल रहा है और वे आदि JRebel जैसे कुछ उपकरणों की रूपरेखा, चल स्रोत कोड इंजेक्शन लगाने की तरह रोचक सामग्री करते हैं और संशोधित करने के लिए इस्तेमाल किया जा सकता के भीतर से सुलभ नहीं है JVM की कार्यक्षमता के लिए उपयोग (इस्तेमाल किया है कोड के गर्म प्रतिस्थापन के लिए) अपने जादू को प्राप्त करने के लिए कार्यक्षमता के इस टुकड़े का उपयोग करता है।
और एक JVM करने के लिए एक एजेंट लिब पारित करने के लिए, आप शुरू तर्क के माध्यम से ऐसा करते हैं, का उपयोग कर -
agentlib:libname[=options]
हम वास्तव में JVM चल बिलाव के लिए एक एजेंट लिब नामित jdwp गुजर रहे थे। जेडीडब्ल्यूपी जेडीडब्लूपी (जावा डीबग वायर प्रोटोकॉल) का एक जेवीएम विशिष्ट, वैकल्पिक कार्यान्वयन है जिसका प्रयोग डीबगर और चल रहे जेवीएम के बीच संचार को परिभाषित करने के लिए किया जाता है। यदि वर्तमान या तो jdwp.so के रूप में JVM के एक देशी पुस्तकालय के रूप में आपूर्ति की या jdwp.dll
तो यह क्या क्या करता है यह, कार्यान्वयन है? सरल शब्दों में, jdwp एजेंट हम पारित मूल रूप से एक आवेदन पत्र और एक डीबगर (जो या तो दूरस्थ या स्थानीय स्थित हो सकता है) चल रहा JVM उदाहरण के बीच एक कड़ी होने का कार्य में लगे हुए है।चूंकि यह एक एजेंट लाइब्रेरी है, इसलिए इसमें चलने वाले कोड को अवरुद्ध करने, JVM और डीबगर के बीच एक पुल बनाने की क्षमता है, और JVM पर लागू डीबगर की कार्यक्षमता है। चूंकि जेवीएम आर्किटेक्चर में, डीबगिंग कार्यक्षमता JVM के भीतर ही नहीं मिलती है लेकिन इसे बाहरी उपकरणों (जिसे उचित रूप से डीबगर्स के रूप में जाना जाता है) में समझा जाता है, ये टूल या तो स्थानीय मशीन पर रहते हैं जो JVM को डीबग किया जा रहा है या चलाया जा रहा है बाहरी मशीन से हूँ। यह डी-युग्मित, मॉड्यूलर आर्किटेक्चर है जो हमें रिमोट मशीन पर चलने वाला जेवीएम रखने और जेडीडब्ल्यूपी का उपयोग करने की इजाजत देता है, रिमोट डीबगर इसके साथ संवाद करने में सक्षम हो सकता है।
इसी तरह ग्रहण डीबगर कम में काम करता है।
स्रोत
2016-01-12 19:33:04
धन्यवाद, एक सार्थक पढ़ा गया था। बस ब्याज के लिए मैं कार्रवाई में डीबगिंग को सीधे देखने के लिए jdi.jar लाइब्रेरी का उपयोग करने की कोशिश करूंगा। –
@manuel, यदि आपके पास समय और धैर्य है, तो JSwat (http://code.google.com/p/jswat/) के स्रोत कोड पर नज़र डालें। यह नेटबीन्स मंच के शीर्ष पर बनाया गया है, और जेपीडीए के संबंध में एक फ्रंट एंड एप्लिकेशन के रूप में कार्य करता है। मुझे यह स्वीकार करना होगा कि मैंने खुद को स्रोतों में नहीं देखा है। –