2010-02-24 15 views
6

मुझे ग्रहण आईडीई को डीबग करना सीखना अच्छा लगेगा। उस समय जब मैं .NET विकास के लिए वीएस का उपयोग कर रहा था, मैं किसी भी समय वीएस को किसी प्रक्रिया में संलग्न कर सकता हूं और समस्या का पता लगाना शुरू कर सकता हूं। मुझे उम्मीद है कि ग्रहण के साथ कुछ ऐसा ही होगा, लेकिन जावा दुनिया के लिए नौसिखिया के रूप में, मुझे इसके बारे में पता नहीं है।डीबग ग्रहण आईडीई स्वयं

मेरी ग्रहण हाल ही में लटका है जब मैं इसे आईबीयूएस (उबंटू 9 .10 पर) के साथ चलाता हूं। मुझे उम्मीद है कि मैं यह जान सकता हूं कि वास्तव में मेरे ग्रहण को क्या लटका है और इससे बचें (कल्पना करें कि आपकी ग्रहण लटका है और आपकी हर खुली फाइलें बंद हैं। यह मुझे पागल बनाता है)।

उत्तर

9

संपादित अपने eclipse.ini फ़ाइल एक नीचे करने के लिए निम्नलिखित जोड़ें (-vmargs नीचे): तो फिर

-Xdebug 
-Xnoagent 
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 

एक ही संस्करण का एक और ग्रहण में, आप प्लग इन हैं डिबगिंग में रुचि रखते हैं आयात कर सकते हैं। फ़ाइल -> आयात करें ... -> प्लग-इन विकास -> प्लग-इन और टुकड़े। सक्रिय प्लेटफॉर्म से आयात करें, और "स्रोत फ़ोल्डर के साथ प्रोजेक्ट" के रूप में आयात करें, अगले टैब पर उन प्लगइन का चयन करें जिनमें आप रुचि रखते हैं।

उचित ब्रेकपॉइंट सेट करें।

फिर डीबग कॉन्फ़िगरेशन में बनाएं, एक नया "दूरस्थ जावा एप्लिकेशन" बनाएं। लोकलहोस्ट, पोर्ट 8000. स्रोत टैब पर जावा प्रोजेक्ट्स जोड़ें, और डीबग करें।

+0

Woot Woot यह वह चीज़ थी जिसे मैं ढूंढ रहा था –

2

एक चीज जो आप किसी भी जावा एप्लिकेशन के साथ कर सकते हैं यह देखने के लिए कि अभी क्या हो रहा है यह kill -QUIT भेज रहा है। यह जेवीएम को अपने सभी धागे के लिए स्टैक ट्रेस को डंप करने का कारण बन जाएगा। बीच में एक सेकंड के साथ यह तीन बार करें और आप देख सकते हैं कि कौन से थ्रेड अच्छी तरह से नहीं चल रहे हैं।

कोशिश करने की एक और चीज चल रही प्रक्रिया में JConsole संलग्न करना है।

+0

हाय, क्या आप मुझे बता सकते हैं कि 'मार - QUIT' कैसे भेजना है? –

+0

आपने कहा कि आप उबंटू पर हैं, इसलिए: 1) प्रक्रिया आईडी ढूंढें, शायद ps auxw का उपयोग कर। 2) खोल से 'kill -QUIT ' – Thilo

1

समय था जब मैं नेट विकास के लिए वी.एस. उपयोग कर रहा था पर वापस, मैं किसी भी समय एक प्रक्रिया के लिए वी.एस. देते हैं और नीचे समस्या का पता लगाने के लिए शुरू कर सकते हैं।

रिमोट डिबगिंग जावा प्लेटफार्म डीबगर आर्किटेक्चर (JPDA) के साथ जावा में भी संभव है, तो आप सिर्फ आवेदन आप दूरस्थ डीबगिंग के साथ सक्षम डिबग करने के लिए चाहते हैं शुरू करने के लिए की जरूरत है। यहां an article दिखा रहा है कि यह कैसे करें और निकालें एप्लिकेशन को डीबग करने के लिए ग्रहण को कॉन्फ़िगर कैसे करें।

ध्यान दें कि जावा 5 से शुरू होने पर, आपको -Xdebug और -Xrunjdwp विकल्पों पर Sun VM Invocation Options में बताए गए विकल्पों को -agentlib:jdwp विकल्प पसंद करना चाहिए।

अद्यतन: ग्रहण एक जावा आवेदन तो यह विकल्प eclipse.ini में लेख में वर्णित जोड़ने के लिए संभव हो जाना चाहिए है। कभी कोशिश नहीं की, हालांकि (मुझे इस तथ्य से चूक गया कि आप खुद ग्रहण डीबग करना चाहते हैं)।

+0

आलेख मुझे एक जार फ़ाइल डीबग करने के बारे में बताता है। लेकिन मुझे ग्रहण एक मूल निष्पादन योग्य फ़ाइल (जैसा दिखता है?) मिला। मैं बंदरगाह संदेश को बंदरगाह में प्रकाशित करने के लिए ग्रहण कैसे कह सकता हूं? –

0

जावा एप्लिकेशन (उदा। ग्रहण) को डिबग करने के मूल रूप से दो तरीके हैं। आप जेकोनसोल का उपयोग कर सकते हैं, लेकिन यह आपको बहुत सारे विवरण नहीं देगा। JConsole को जोड़ने के लिए आपको दूरस्थ डिबगिंग सक्षम करना होगा; इसे एक JVM तर्क की आवश्यकता है जिसे आप ग्रहण निष्पादन योग्य के ठीक आगे eclipse.ini फ़ाइल में लिख सकते हैं।

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

2

a thread about finding cause of a freezing Eclipse है।

समाधानों में से एक -consolelog विकल्प के साथ ग्रहण शुरू करने का सुझाव देता है। यह क्या हो रहा है (वास्तविक डीबगिंग करने से पहले) पर एक त्वरित नज़र डालने के लिए उपयोगी हो सकता है।

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