LLDBでアドレスからオブジェクトの内容を確認する


例えば、XcodeのDebugging View Hierarchiesを使ってデバッグ中に取得したアドレスから、オブジェクトのより詳細な内容を確認したいときなどがあるかと思います。
そこで、SwiftのunsafeBitCast(_:to:)を使えば簡単にアドレスからオブジェクトの内容を確認することができます。

LLDBでは以下のようなコマンドで確認できます。

(lldb) expr -l Swift -- import UIKit
(lldb) expr -l Swift -- let $label = unsafeBitCast(0x7fac81778d00, to: UILabel.self)
(lldb) expr -l Swift -- print($label.font)
Optional(<UICTFont: 0x7fac81779410> font-family: ".SFUIDisplay-Bold"; font-weight: bold; font-style: normal; font-size: 22.00pt)