Zwykle, aby dołączyć debuger do działającego jvm, musisz uruchomić jvm z argumentami takimi jak:
> java -Xdebug -Xrunjdwp:transport=dt_socket,address=1000,server=y,suspend=n
Co mogę teraz zrobić, jeśli chcę debugować proces, który nie został uruchomiony w trybie debugowania?
Taka sytuacja ma miejsce, gdy system produkcyjny (tj. Uruchomiony bez argumentów debugowania) wykazuje „losowy” (używam tego terminu luźno) błąd. Nie mogę więc ponownie uruchomić jvm z odpowiednimi argumentami, ponieważ nikt nie wie, jak ponownie odtworzyć błąd. Czy w tej sytuacji nie można dołączyć do JVM?
Aby wyjaśnić, nie można używać narzędzi takich jak jdb do dołączania do już działających maszyn JVM, chyba że zostały one uruchomione w trybie debugowania
ze strony podręcznika JVM
Innym sposobem wykorzystania jdb jest dołączenie go do już uruchomionej maszyny wirtualnej Java. Maszyna wirtualna, która ma być debugowana za pomocą jdb, musi zostać uruchomiona z następującymi opcjami: