簡體   English   中英

從應用程序內請求Java堆轉儲(核心轉儲)

[英]Request java heap dump (core dump) from within application

我需要一種從應用程序內請求堆轉儲的方法

基本原理:當我遇到特定的錯誤條件時,我想轉儲堆,這樣我就可以看到內存中的內容。

但是我想自動執行此操作(例如,當我檢測到某些特定條件已經發生時。或者當看門狗不再獲得它的ping時。當某些測試失敗時)。 因此,我需要一種從應用程序本身轉儲堆的方法。 我似乎無法用MX bean找到它。 雖然MX Beans可以通過監視器和“擁有同步器”信息,死鎖和爭用信息提供非常好的堆棧跟蹤,但我似乎無法找到請求堆轉儲的方法。 有沒有這樣的方式? 或者通過一些間接方式,例如,這些JVisualVM的事情是如何做到的? 人們可以告訴JVM在OutOfMemoryExceptions上轉儲核心..?

如果OutOfMemoryError轉儲堆是不夠的,那么有一種以HotSpot為依據的方式以編程方式從Java應用程序中轉儲堆 ,如果可以的話。

如何使用VM選項-XX:+HeapDumpOnOutOfMemoryError告訴HotSpot VM在內存不足時生成堆轉儲?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM