Go Wiki: heapdump14

其他版本的堆疊傾印格式

簡介

Go 1.4 有個 runtime/debug.WriteHeapDump 函式,可以將堆疊中的所有物件以及其他資訊(根、goroutine、完成處理常式等)寫入檔案。此檔案的格式在此指定。

詳細資料

檔案以字串「go1.4 heap dump\n」的位元組開頭。

檔案的其餘部分是一連串的記錄。記錄可以有數種不同的類型。記錄將包含下列基本類型

每筆記錄以 uvarint 編碼的整數開頭,描述記錄的類型

每筆記錄的剩餘欄位依類型而定,如下所述。

EOF

EOF 記錄沒有欄位,而且必須出現在最後。

物件

內容字串的大小是包含的 sizeclass 大小,而不是物件本身的大小。因此,內容大小可能比所包含物件的類型略大。

otherroot

類型

goroutine (G)

可能的狀態

等待欄位在所有情況下都必須存在,但只有當狀態為「等待」時才有意義。

堆疊框架

傾印參數

完成函式

此完成函式已向執行時期系統註冊,但它所參照的物件在最近一次 GC 時可存取,或在最近一次 GC 之後配置。

itab

osthread (M)

memstats

傾印 MemStats 的前 26 個欄位。所有欄位都以 uvarint 傾印,除了第 25 個欄位以 256 個 uvarint 傾印。

queuedfinalizer

此完成函式已準備好執行 - 它所參照的物件不可存取。執行時期系統只是尚未執行它。

資料

bss

格式與資料相同,但適用於 bss 區段。

遞延

panic

配置/釋放剖析記錄

配置範例記錄


此內容是 Go Wiki 的一部分。