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?
risposta
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?)
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.
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.
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
@thimmayya Queste note hanno risposto alla tua domanda o stai ancora guardando? – jayshao
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
Non sono sicuro di aver compreso correttamente le restrizioni, ma è possibile avviare JVM con il server di debug (che serve JDWP) abilitato. Vedere ad esempio "Opzioni di richiamo di VM di Sun" in http://java.sun.com/j2se/1.4.2/docs/guide/jpda/conninv.html
Quindi è possibile connettere il debugger di Eclipse a JVM in esecuzione. alla sezione "debug remoto" qui http://www.ibm.com/developerworks/library/os-ecbug/
Non sono sicuro che questo è esposta da Eclipse, ma ecco come farlo con jdb:
http://java.sun.com/javase/6/webnotes/trouble/TSG-VM/html/tooldescr.html#gbmog
- 1. È un processo in esecuzione su una macchina remota?
- 2. Come copiare una directory dalla macchina locale alla macchina remota
- 3. Copia un file non exe su una macchina remota
- 4. Impossibile connettersi dalla macchina remota
- 5. cmake "make install" su macchina remota?
- 6. Aprire l'applicazione macchina remota
- 7. Come posso connettermi a MySQL su un server WAMP?
- 8. come verificare se sshd viene eseguito su una macchina remota
- 9. staccare un processo dal debugger di Visual Studio
- 10. Come posso connettermi esternamente a un servizio in esecuzione su 127.0.0.1 (anziché su 0.0.0.0)?
- 11. Celery - Come inviare attività dalla macchina remota?
- 12. Installare un servizio Windows su una macchina remota usando un determinato nome utente
- 13. C'è un modo per eseguire uno script python su una macchina remota senza inviarlo?
- 14. Come aggiungere un kernel su una macchina remota nel blocco note di IPython (Jupyter)?
- 15. comando in esecuzione su macchina remota con tramp?
- 16. Posso connettermi a un server Microsoft SQL con MySQL Workbench
- 17. Come posso collegare un debugger a un processo Perl in esecuzione?
- 18. Connessione a un server mssql da una macchina remota dà accesso non riuscito per l'utente ''
- 19. scrivere uno script shell ssh a una macchina remota ed eseguire comandi
- 20. Come posso connettermi a uno stream Wowza Transcoder in JWPlayer?
- 21. Lua Debugger che può allegare al processo
- 22. Come posso connettermi a un database esterno da un'istruzione SQL o una stored procedure?
- 23. Ottieni i valori reali delle variabili di ambiente su una macchina remota in .NET
- 24. Fiddler per il sito Web in esecuzione su una macchina remota
- 25. Come connettersi a un server MySQL in esecuzione su una macchina virtuale
- 26. Come eseguire test GUI automatizzati su una macchina virtuale ESXi headless remota?
- 27. Come si allega un processo al debugger in Visual Studio?
- 28. Come inviare una sequenza di interrupt a un processo Java?
- 29. Come collegare dinamicamente un debugger ad un processo specifico
- 30. Come posso connettermi a MySQL in Ruby on Rails?
Dove è possibile trovare una soluzione al problema? – ekeren