ペンギン村 Tech Blog

技術をこよなく愛するエンジニア集団が在住するペンギン村から、世界へ役立つ(かもしれない)技術情報を発信する技術系ブログです。某アラレちゃんが済む村とは一切関係ありません。んちゃ!

自由にクラスインスタンスにアクセスできるLLDBコマンド「vinfo」

自己紹介

ペンギン村の通行人 、po_miyasakaです。
名前の「po」はLLDBのコマンドから拝借しました。 (プロダクトオーナーでは🍆😎)

vinfoとは

github.com

  • pythonで実装されたLLDB用カスタムコマンド
  • 任意のアドレスからデバッグ用変数を生成する程度の能力を持つ
     (クラスインスタンスのアドレスに限る)
  • SwiftもしくはObjective-Cで利用可能

使用方法イメージ

使い所

  • 任意のインスタンスのプロパティを確認したいとき
  • 任意のインスタンスのメソッドを実行したいとき
    • 本来一度しか表示されないであろうチュートリアルを表示するメソッドを実行してデバッグなど
    • privateとして定義されていても実行可能
      • ViewModelのプライベートなBehaviorRelayのacceptを実行することができたり

使い方

READ.mdに記載

備考

SwiftのStuctには vinfoではアクセスできません。。
  • Structの変数にはvinfoではインスタンス化できません
  • StructはDebug Memory Graphにも表示されない
  • ViewControllerなどのクラスがStructを保持している場合はViewControllerのインスタンス経由でアクセスすることはできます