2009-06-26 9 views
7

Ho un processo java in esecuzione su una macchina Linux, ma non può essere avviato/riavviato in modalità di debug. Ho letto del comando jsadebugd e ho avviato il daemon, ma voglio collegarmi ad esso da un debugger IDE (possibilmente Eclipse) o forse da YourKit o jconsole. Come posso fare questo? La JVM remota è 1.6+.Posso connettermi a un processo jsadebugd su una macchina remota dal debugger Eclipse/IDE?

+2

Dove è possibile trovare una soluzione al problema? – ekeren

risposta

1

presumo dal momento che lei ha citato Yourkit e altri strumento che quello che vuoi veramente è guardare lo stato dell'oggetto all'interno delle tue applicazioni. Ci sono un paio di opzioni, anche se non penso che ti possa dare la possibilità di impostare break-point come Eclipse o un altro debugger (anche se sarei interessato a sentire cosa ti impedisce di avviare il processo in modalità di debug - tecnico ? processo?)

  1. hai provato a connetterti con: VisualVM? Non credo che sia necessario iniziare in modalità di debug, e sarà dare la possibilità di navigare il grafico dell'oggetto e ispezionare gli oggetti. Puoi persino usarlo per eseguire i heapdump e fare alcune analisi ad hoc attraverso le query OQL.

  2. Se stai utilizzando JDK6 + - hai provato a utilizzare lo strumento con btrace? Alcuni notes from the sailfin team sembravano promettenti e, come DTrace in Solaris, sembra che sarebbe utile in una varietà di situazioni.

+0

Il processo era già in esecuzione e volevo vedere se potevo dare un'occhiata alla JVM in qualche modo. Non era stato avviato in modalità di debug, quindi stavo esplorando le opzioni per questo. In generale, tuttavia, Eclipse debugger e Yourkit sono abbastanza potenti da risolvere i problemi a patto che i processi vengano impostati di conseguenza. Non ho provato prima btrace, ma lo controllerò. – Thimmayya

+0

@thimmayya Queste note hanno risposto alla tua domanda o stai ancora guardando? – jayshao

+0

le note erano utili. Non ho ancora provato btrace, ma la documentazione dice che un programma BTrace può essere eseguito su un processo Java in esecuzione. Grazie. – Thimmayya

Problemi correlati