2009-12-15 13 views
36

में संकलित जावा कोड को डीबग कैसे करें मुझे आश्चर्य है कि जावा कोड को डीबग करने के लिए एक्लिप्स आईडीई के लिए कोई समाधान है जिसके लिए मेरे पास कोई स्रोत नहीं है, यानी गतिशील रूप से अपूर्ण कोड डीबग करने के लिए, इसके माध्यम से कदम आदि? मैंने JD-Eclipse, JadClipse का उपयोग करने की कोशिश की, और यदि मैं कुछ क्लास फाइलों को देखना चाहता हूं, तो ये प्लग-इन बहुत अच्छा काम करते हैं, लेकिन जैसा कि मैंने डीबग किया है, मुझे "स्रोत नहीं मिला।" - मैं इन प्लग-इन को "प्रदान" करने के लिए "संलग्न" कैसे कर सकता हूं?ग्रहण

मेरे पर्यावरण:

  • ग्रहण 3.5
  • Windows XP (लेकिन यदि संभव हो तो मैं, एक क्रॉस मंच समाधान के लिए देखो)

धन्यवाद।

+0

आप आप इसे जी के साथ वापस संकलन नहीं कर सकते हैं और के बारे में जाना decompiled हैं आपके ओ के रूप में डीबगिंग wn स्रोत कोड। –

+0

असंगत स्रोत परिणाम को ठीक उसी वर्ग फ़ाइलों में पुन: संकलित करेगा? मुझे नहीं लगता। लेकिन यदि ओपी कक्षा फाइलों को अपने आप से बदल सकता है, तो मुझे लगता है कि यह काम करने योग्य है। –

+0

ध्यान दें कि IntelliJ 14+ में एक डीकंपलर बनाया गया है। –

उत्तर

13

मैं Jadclipse के साथ अच्छा अनुभव है - http://jadclipse.sourceforge.net/wiki/index.php/Main_Page - वहाँ http://jadclipse.sf.net/update

सबसे अच्छा परिणाम, उपयोग jad के लिए पर एक अद्यतन साइट है और यह कॉन्फ़िगर टिप्पणियां जो उत्पादन जहां सक्षम हो जाएगा के रूप में लाइन नंबर सूचीबद्ध करने के लिए कोड सही रेखा पर है। डीबगिंग सत्रों के लिए यह सबसे अच्छा है।

फिर इसे कक्षाओं के लिए डिफ़ॉल्ट दृश्य के रूप में सेट करें। विवरण के लिए दस्तावेज देखें। यह मेरे लिए अच्छा काम करता है।

+0

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

+0

सहमत हैं, लेकिन जाद खुला स्रोत नहीं है और लेखक ने इसे छोड़ दिया है। उम्मीद है कि जाडक्लिसे द्वारा समर्थित नए डिकंपलर अंततः जाड से भी बेहतर होंगे। –

+0

मिस्लिग्नेड इस तरह से है कि जाड अपूर्ण स्रोत बनाता है। मेरा मानना ​​है कि यह क्रमशः लिखता है, और चीजों को बेहतर रखने के लिए पीछे और पीछे नहीं जा सकता है। –

2

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

तुम भी उन्हें परियोजना में एक फ़ोल्डर के अंदर हो सकता है (इस मामले में कार्यस्थान पर क्लिक करें)

+0

आप किस डिकंपेलर की सिफारिश करेंगे? –

+0

मैंने हाल ही में विघटन नहीं किया है (ओपन सोर्स लाभ ...) लेकिन मुझे अच्छा परिणाम देने के लिए जेएडी और जॉडे याद है। Http://stackoverflow.com/questions/31353/ और http://stackoverflow.com/questions/1384619/ –

+0

पर और देखें, हाँ, मैं इस दृष्टिकोण पर विचार कर रहा था, लेकिन यदि कई पुस्तकालय हैं तो यह बहुत परेशान हो जाता है, इसलिए मैं बिना किसी ओवरहेड के "स्वचालित तरीके" की तलाश में हूं। – NSPKUWCExi2pr8wVoGNk

3

इस प्लग उम्मीद है कि मदद की जानी चाहिए। JD-Eclipse

ग्रहण खुला विंडो में -> वरीयताएँ -> सामान्य -> ​​संपादक -> फ़ाइल संघों * .class चयन फ़ाइल प्रकार एसोसिएट यह जद-ग्रहण सेट के साथ यह डिफ़ॉल्ट

गुड लक

+3

यह मेरे लिए डीबग के साथ काम नहीं किया। – NSPKUWCExi2pr8wVoGNk

+0

यह –

15

मुझे एक ही समस्या है। आज, संकलित जावा कोड डीबग करने के लिए कोई डिकंपलर प्रभावशाली नहीं हैं। मैं जेडी-ग्रहण पर काम कर रहा हूं। अगले 3 से 6 महीनों में, जेडी-ग्रहण का लेआउट वास्तव में सुधार किया जाना चाहिए। हम स्रोतों के बिना कक्षाओं को डीबग करना शुरू करेंगे और कुछ अव्यवस्थित समस्याओं को हल करेंगे।

+0

कूल :-) कृपया हमें बताएं –

+0

@ ईमानुअल डुप्यू: "स्रोतों के बिना डीबग कक्षाओं" पर कोई प्रगति? – rafalmag

+1

@rafalmag रीयललाइनमेंट एल्गोरिदम तैयार है। आप इसे यहां देख सकते हैं: http://java.decompiler.free.fr/?q=preview। जेडी-ग्रहण में इसके एकीकरण में कुछ महीने लगेंगे। यह कहने के लिए अनुकूल है कि यह दिसंबर में तैयार होगा। वर्तमान में, जेडी-आप-ग्रहण का उपयोग कर सकते हैं + एलेक्स कोसिंस्की का विस्तार: http://sourceforge.net/projects/realignmentjd –

3

आप जेडी फाइलों को डीकंपाइल करने के लिए जेडी-जीयूआई का उपयोग कर सकते हैं और पूरे लॉट को स्रोत ज़िप फ़ाइल में सहेज सकते हैं जिसे बाद में स्रोत खोज सूची (कॉन्फ़िगर बिल्ड पथ के माध्यम से) में जोड़ा जा सकता है।

जद-जीयूआई के साथ समस्या यह है कि

लाइन नंबर बाहर जो बहुत मुश्किल डिबगिंग बनाता हो रहा है, तो आप

  1. की जरूरत decompiled स्रोत ज़िप फ़ाइल
  2. भागो स्क्रिप्ट नहीं मिली से स्रोत फ़ाइलों को अलग https://bushlife.com.au/groups/python/wiki/7539a/Adjust_line_numbers_in_file.html
  3. में उत्पन्न स्रोत ज़िप वापस ऊपर
  4. अपने जावा फ़ाइल से संबद्ध स्रोत पथ के रूप में जोड़ने - कॉन्फ़िगर सही अपने जावा परियोजना में जार फ़ाइल पर क्लिक करने के बाद पथ निर्माण का उपयोग कर।
+0

यह मैंने देखा है कि लाइन संख्याओं के लिए एक समाधान का पहला उल्लेख है! धन्यवाद। दुख की बात है कि होमपेज नीचे है! – sandos

+0

बस साइट की जांच की। यदि आपको अभी भी समस्याएं हैं तो आप साइट पर स्पाइडर को विशिष्ट विवरण भेज सकते हैं। वह सारी समस्या को क्रॉल करेगा। – sweetfa

+0

मैं स्क्रिप्ट को डाउनलोड और उपयोग करने में कामयाब रहा, बहुत अच्छा। यह आउट ऑफ़ ऑर्डर लिननबर्स की परेशान हैंडलिंग है लेकिन इसे चारों ओर काम किया जा सकता है। – sandos

6

जेडी-ग्रहण होस्ट प्लग-इन के लिए रीयलिनमेंट खंड। ग्रहण के लिए यह प्लग-इन जावा-क्लास फ़ाइल से रेखा संख्याओं के लिए वास्तव में उपयुक्त कोड कोड संख्याओं को उपयुक्त बनाता है। नतीजतन, यह स्रोत कोड के बिना संभव डीबगिंग हो जाता है। https://sourceforge.net/projects/realignmentjd/

2

समाधान है कि मेरे लिए काम किया पैच लागू करने के बाद जद-ग्रहण उपयोग कर रहा है: http://java.decompiler.free.fr/?q=node/464

यह जद-ग्रहण जो decompiling के बाद कोड realigns का एक विस्तार है।

ग्रहण के साथ डीबगिंग करते समय आपको क्लासपाथ में जार फ़ाइलों की आवश्यकता होती है और यही वह है! , पूरे जार डिकंपाइल फिर से संगठित करना या जो भी ... बस डिबग और :-)

तरीके से ऐसा करने के लिए खुश होने के लिए कोई ज़रूरत नहीं है: http://gauchoacomecable.wordpress.com/2011/10/14/eclipse-debug-java-without-source-code-jd-eclipse-and-realignment/

0

मैं "जद ग्रहण के लिए फिर से संगठित करना" वृद्धि की है प्लगइन ठीक से enums और खेतों लाइन अप और साथ इसे प्रकाशित अपने ही अद्यतन साइट पर जद ग्रहण के साथ करने के लिए: http://mchr3k-eclipse.appspot.com/

अपने परिवर्तनों के बारे में विवरण: http://mchr3k-coding.blogspot.co.uk/2012/07/realignment-for-jd-eclipse.html

+0

क्या आपने एक ही पैच [अन्य प्रोजेक्ट] के रूप में उपयोग किया है (http://gauchoacomecable.wordpress.com/2011/10/14/eclipse-debug-java-without-source-code-jd-eclipse-and-realignment/) ? दयालुता कि यह सुविधा मास्टर कोड पर नहीं गई है, तो हमारे पास दो कोड कांटे नहीं होंगे। –

+0

नहीं। Http://mchr3k.github.com/jdeclipse-realign/ के अनुसार मैंने एक अलग परियोजना को फोर्क किया। – mchr