2013-03-02 14 views
6

Vorrei sapere se esiste un plug-in IDE o Eclipse che supporta il debug in modalità mista. Mentre cercavo il termine mixed mode, ho trovato molti riferimenti al debugging dei linguaggi VM insieme al codice nativo.Debug Java con codici byte

Ma mi riferisco a una funzionalità simile a quella disponibile in linguaggi compilati come C in cui un utente può vedere sia la linea di origine C lungo la linea di assemblaggio corrispondente che sarà in grado di intervenire anche a livello di assieme . (Scusate Se avessi fatto un errore nomenclatura chiamando la funzione come modalità mista)

In altre parole sto cercando un seguenti caratteristiche durante il debug Java:

  1. Capacità di codice sorgente Java e la codici byte corrispondenti durante l'esecuzione del programma
  2. Capacità di vedere registri PC JVM e Operando impila
  3. Possibilità di visualizzare altre strutture di dati specifico JVM (ad esempio piscine costanti)

Questo è il modo in cui il codice sorgente Java si associa ai byte code e in che modo le varie strutture dati associate a JVM vengono influenzate durante l'introduzione.

+0

Non è necessario un debugger per capire come il codice sorgente Java si associa al codice byte. Basta usare 'javap'. –

+0

Buona domanda! Con i debugger gdb o MSVS è possibile eseguire il debug sia a livello di assembly che a livello di alto livello. Sarei curioso di sapere se esistesse un modo per fare qualcosa di simile da un IDE Java. Ecco alcuni suggerimenti: [Come eseguire il debug di Java compilato in Eclipse] (http://stackoverflow.com/questions/1905446/how-to-debug-compiled-java-code-in-eclipse), e [Esiste un debugger/disassembler per Java?] (http://stackoverflow.com/questions/2539614/is-there-a-disassembler-debugger-for-java-ala-ollydbg-softice-for-assembler) – paulsm4

+0

Non è solo una questione di IDE e plugin. Tale funzionalità richiederebbe un supporto intimo dalla stessa JVM. Suppongo che un'alternativa sia usare un'implementazione JVM personalizzata. – Antimony

risposta

0

Non è necessario il debugger per capire come il codice Java si associa al codice nativo compilato. È possibile utilizzare il flag JVM -XX:+PrintCompilation. Vedi le informazioni sulla modalità su questo in Stephen Colebourne's blog post e maggiori dettagli in Kris Mok reply to that post.

È inoltre possibile trovare utile HotSpot Internals Wiki.

+1

Credo che l'OP voglia eseguire il debug a livello di bytecode, non di codice nativo. – Antimony

+0

Ho letto OP voleva capire come il codice sorgente Java si associa ai codici byte e come sono influenzate le varie strutture dati associate a JVM. –

1

Sono uno sviluppatore DSL e ho avuto una sorta di esecuzione in questo stesso numero un numero di volte.

L'unico strumento che ho trovato è stato gli strumenti Dr. Garbage.

Al momento attuale, non sembrano essere le migliori, ma funzionano con le versioni appropriate di Eclipse.