2009-12-15 35 views
36

Mi chiedo se ci sono soluzioni per Eclipse IDE per eseguire il debug del codice Java per il quale non ho alcuna fonte, ad esempio eseguire il debug del codice decompilato dinamicamente, passarlo attraverso, ecc.? Ho provato a utilizzare JD-Eclipse, JadClipse e questi plug-in funzionano alla grande se voglio guardare alcuni file di classe, ma mentre eseguo il debug, ottengo "Sorgente non trovata". - Come posso "allegare" questi plug-in per "fornire" la fonte?Come eseguire il debug del codice Java compilato in Eclipse

Il mio ambiente:

  • Eclipse 3.5
  • Windows XP (ma cerco una soluzione multipiattaforma, se possibile)

Grazie.

+0

Se decompilato si fa a non compilarlo indietro con -g e andare su debugging come sarebbe il tuo o wn codice sorgente. –

+0

Ricompilando i risultati di origine decompilati esattamente negli stessi file di classe? Non penserei. Ma se l'OP può sostituire i file di classe con i propri, allora suppongo che sia fattibile. –

+0

Nota che IntelliJ 14+ ha un decompilatore integrato. –

risposta

13

ho una buona esperienza con JadClipse - http://jadclipse.sourceforge.net/wiki/index.php/Main_Page - v'è un sito di aggiornamento a http://jadclipse.sf.net/update

per ottenere i migliori risultati, utilizzare jad e configurarlo per elencare i numeri di riga come commenti che permetteranno l'uscita in cui il codice è sulla linea corretta. Questo è il modo migliore per eseguire il debug delle sessioni.

quindi impostarlo come la visualizzazione predefinita per le classi. Guarda la documentazione per dettagli. Questo funziona bene per me.

+0

Bene, questo approccio è il più adatto - sembra funzionare (decompone le classi Java al volo, mostra la sorgente durante il debug). Sembra che stavo andando bene, ma ho mancato di riavviare Eclipse poche volte. Sarebbe perfetto se tutte le linee di file decompilate corrispondessero, perché ora mi mannesco MISALIGNED. – NSPKUWCExi2pr8wVoGNk

+0

D'accordo, ma jad non è open source e l'autore sembra averlo abbandonato. Speriamo che i nuovi decompilatori supportati da jadclipse finiranno per essere persino migliori di jad. –

+0

Il MISALIGNED è dovuto al modo in cui jad crea la sorgente decompilata. Credo che scriva in serie, e non posso andare avanti e indietro per sistemare le cose. –

2

Decompila tutte le classi, metti tutti i file Java ordinati nella giusta gerarchia (directory per pacchetto, ecc. > Cartella esterna.

Si può anche avere al loro interno una cartella nel progetto (cliccare su Area di lavoro in questo caso)

+0

Quale decompilatore consiglieresti? –

+0

Ultimamente non ho eseguito decompilazioni (il vantaggio dell'open source ...) ma ricordo JAD e JODE per ottenere buoni risultati. Maggiori informazioni su http://stackoverflow.com/questions/31353/ e http://stackoverflow.com/questions/1384619/ –

+0

Sì, stavo considerando questo approccio, ma se ci sono molte librerie questo diventa troppo fastidioso, quindi Sto cercando un "modo automatico" senza sovraccarico. – NSPKUWCExi2pr8wVoGNk

3

Questo plugin dovrebbe auspicabilmente essere di aiuto. JD-Eclipse

in Eclipse Finestra aperta -> Preferenze -> Generali -> Editor -> Associazioni file Select * .class tipo di file associarlo con JD-Eclipse Set a predefiniti

Good Luck

+3

Questo non ha funzionato con il debug, per me. – NSPKUWCExi2pr8wVoGNk

+0

Non ha funzionato –

15

Ho lo stesso problema. Oggi, nessun decompilatore è efficace per il debug di codice Java compilato. Sto lavorando su JD-Eclipse. Nei prossimi 3-6 mesi, il layout di JD-Eclipse dovrebbe essere davvero migliorato. Inizieremo a eseguire il debug delle classi senza fonti e risolveremo alcuni problemi intrattabili.

+0

Cool :-) Per favore fateci sapere –

+0

@Emmanuel Dupuy: qualche progresso su "debug classes without sources"? – rafalmag

+1

@rafalmag L'algoritmo di riallineamento è pronto. Puoi testarlo qui: http://java.decompiler.free.fr/?q=preview. La sua integrazione in JD-Eclipse richiederà alcuni mesi. È ragionevole dire che sarà pronto a dicembre. Attualmente, JD-you-puoi usare Eclipse + l'estensione di Alex Kosinsky: http://sourceforge.net/projects/realignmentjd –

3

È possibile utilizzare JD-GUI per decompilare i file jar e salvare l'intero lotto in un file zip di origine che può essere aggiunto all'elenco di ricerca di origine (tramite Configura percorso di creazione).

Il problema con JD-GUI è che i numeri di riga sono fuori che rende il debugging molto difficile, quindi è necessario

  1. estrarre i file di origine dal file zip fonte decompilato
  2. Eseguire lo script trovato a https://bushlife.com.au/groups/python/wiki/7539a/Adjust_line_numbers_in_file.html
  3. zip il sorgente generato back up
  4. aggiungerlo come il percorso di origine associato con il file java - di usare Configura Build Path dopo clic destro sul file jar nel progetto Java.
+0

Questa è la prima menzione di una soluzione per i numeri di linea che ho visto! Grazie. Purtroppo la home page è giù! – sandos

+0

Appena controllato il sito. Se hai ancora problemi puoi inviare dettagli specifici a Spider sul sito. Percorrerà tutto il problema. – sweetfa

+0

Sono riuscito a scaricare e utilizzare lo script, molto bello. Ha un trattamento fastidioso dei lini fuori ordine, ma può essere risolto. – sandos

6

Frammento di riallineamento per plug-in host JD-Eclipse. Questo plug-in per Eclipse rende i numeri di riga di codice decompilati effettivamente appropriati ai numeri di riga dal file java-class. Di conseguenza, diventa possibile eseguire il debug senza codice sorgente. https://sourceforge.net/projects/realignmentjd/

2

La soluzione che ha funzionato per me sta usando il JD-Eclipse dopo l'applicazione della patch: http://java.decompiler.free.fr/?q=node/464

Si tratta di un'estensione di JD-eclisse, che riallinea il codice dopo decompilazione.

Quando si esegue il debug con eclipse è sufficiente disporre dei file jar nel classpath e il gioco è fatto! Non c'è bisogno di decompilare tutto il vaso, riallineare o qualunque ... Basta eseguire il debug e di essere felice :-)

Ecco come si fa: http://gauchoacomecable.wordpress.com/2011/10/14/eclipse-debug-java-without-source-code-jd-eclipse-and-realignment/

0

ho migliorato il "riallineamento per JD Eclipse" plugin per allineare correttamente le enumerazioni e campi e pubblicato insieme a JD Eclipse sul mio sito di aggiornamento: http://mchr3k-eclipse.appspot.com/

dettagli circa le mie modifiche: http://mchr3k-coding.blogspot.co.uk/2012/07/realignment-for-jd-eclipse.html

+0

Hai usato la stessa patch di [un altro progetto] (http://gauchoacomecable.wordpress.com/2011/10/14/eclipse-debug-java-without-source-code-jd-eclipse-and-realignment/) ? Peccato che questa funzione non sia passata al codice principale, non avremo quindi due fork di codice. –

+0

No. Come per http://mchr3k.github.com/jdeclipse-realign/ Ho biforcato un progetto diverso. – mchr

Problemi correlati