Durumu çözümlemek için 2 kilitlenmemiş iş parçacığı yığınına bakmam gerekiyor. JVM
şu anda canlı ve veriler var, ama bunu işlemden çıkarmak için bir çeşit araca ihtiyacım var. Ben sadece String
türünde yığında 6 değişkene dikkat ediyorum. Her türlü fikir memnuniyetle kabul edilir. JVM
sürümleri 6_35
, linux
, JMX
etkin, ancak üzerinde yapılandırılmış bir profiler/debugger
bağlantı yok. Yeniden üretilmesi çok zor.Geçerli iş parçacığı yığın değişkenlerini canlı bir JVM'den döker miyim?
cevap
Bunu kolayca yapamazsınız. Normal jstack
aracı sadece yığın yığınını alacaktır. Teknik olarak tüm yığının dökülmesini deneyebilirsiniz (jmap
kullanarak) ancak bu özel değişkenleri aramak mümkünse bir ağrı olabilir. Güvenlik nedenleriyle bunun kolayca yapılamayacağını unutmayın. Yığın izleri kimlik bilgileri veya diğer hassas verileri içerebilir. Emin çıkış sert, amaçlarınıza uygun olacaksa - IBM's JVM olacak şekilde
Güvenlik nedenlerinden ötürü şüphe duyuyorum, "kolayca yapamaz" hackleme söz konusu olduğunda asla iyi bir yaklaşım değildir. Sadece 2 sentim. –
Sen Sun/Oracle JVM ile Unix benzeri işletim sistemi üzerinde, süreci size dump and keep the VM running verecek SIGQUIT gönderebilir. Muhtemelen diğer cevapta jstack
/jmap
'a benzer.
Bu, yalnızca her bir iş parçacığındaki değişkenlerin durumunu değil, bir iş parçacığı dökümü (her iş parçacığı için çağrılan yöntemlerin sırası) verir. –
Yığın döküm görüntüleyici kullanarak küçük bir hile buldum (Bu örnekte YourKit, ancak başkaları da olabilir). Temel olarak Thread sınıfının tüm örneklerini sıralarsınız, sonra istediğiniz isimleri isme göre bulup açın. Bütün değişkenler burada değil
ancak yönteme argüman olarak geçirilen tüm görüntülenir: yığın değişkenleri < yerel değişken> böyle olarak işaretlenir. Profilciler bu sorunu daha da iyi çözebilir mi acaba?
- 1. Bir sunucudan bir iş parçacığı oluşturabilir miyim?
- 2. BackgroundWorker - Çapraz iş parçacığı geçerli değil
- 3. Java'da bir iş parçacığı içinde bir iş parçacığı çalıştırabilir miyim? Java'da
- 4. İş parçacığı .net 4
- 5. Bir iş parçacığı veya iş parçacığı için bir DAO DAO?
- 6. Bir "gerçek" iş parçacığı
- 7. İş parçacığı tanıtıcısı iş parçacığı tanıtıcısı
- 8. iş parçacığı içinde yerel depolama iş parçacığı
- 9. OpenMP'de bir kod bölümüne birden fazla iş parçacığı atayabilir miyim?
- 10. iş parçacığı
- 11. UI iş parçacığı üzerinde görev sürdürme, arka plan iş parçacığı
- 12. Çalışan bir iş sırasında python değişkenlerini okuma
- 13. İş parçacığı, iki iş parçacığı arasındaki iletişim C#
- 14. Geçerli iş parçacığının maksimum yığın boyutu .net içinde nasıl bulunur?
- 15. WPF iş parçacığı: bir denetimin veri içeriğini UI olmayan bir iş parçacığında güncelleyebilir miyim?
- 16. UI iş parçacığı dışında bir iş parçacığında bir etkinliği öldürebilir veya bitirebilir miyim?
- 17. Bir iş parçacığı özellikle blok
- 18. başka bir iş parçacığı (Net)
- 19. Bir daemon iş parçacığı yalnızca
- 20. UEFI'da bir iş parçacığı oluşturma
- 21. Bir iş parçacığı oluşturma işlevine
- 22. .NET'te bir iş parçacığı başlatılıyor
- 23. ACAccount iş parçacığı güvenli mi?
- 24. C# Request.Form değişkenlerini değiştirebilir miyim?
- 25. Windows'da iş parçacığı yığını nasıl edinilir?
- 26. CountdownTimer UI iş parçacığı güncelleştiren çalışan iş parçacığı içinde
- 27. Windows iş parçacığı havuzu ve CLR iş parçacığı havuzu
- 28. Qt: Arka plan iş parçacığı yenileme UI iş parçacığı
- 29. iOS Simulator'a canlı bir fotoğraf yerleştirebilir miyim?
- 30. Django/sqlite3 "OperationalError: iş parçacığı yok" iş parçacığı üzerinde
Merhaba aşağı seçmen? – ShiDoiSi