自己紹介
ペンギン村の通行人 、po_miyasakaです。
名前の「po」はLLDBのコマンドから拝借しました。 (プロダクトオーナーでは🍆😎)
vinfo
とは
- pythonで実装されたLLDB用カスタムコマンド
- 任意のアドレスからデバッグ用変数を生成する程度の能力を持つ
(クラスインスタンスのアドレスに限る) - SwiftもしくはObjective-Cで利用可能
使用方法イメージ
- アドレスからインスタンス生成デモ
https://po-miyasaka.github.io/ezgif-2-f0ca03bf9732.gif - Debug Memory Graphからインスタンス生成デモ
https://po-miyasaka.github.io/trimed_mem_graph.gif - View Hierarchyからインスタンス生成デモ
https://po-miyasaka.github.io/view_hierarchy.gif
使い所
- 任意のインスタンスのプロパティを確認したいとき
- 任意のインスタンスのメソッドを実行したいとき
- 本来一度しか表示されないであろうチュートリアルを表示するメソッドを実行してデバッグなど
private
として定義されていても実行可能- ViewModelのプライベートなBehaviorRelayのacceptを実行することができたり
使い方
READ.mdに記載
備考
SwiftのStuctには vinfoではアクセスできません。。
- Structの変数にはvinfoではインスタンス化できません
- Structは
Debug Memory Graph
にも表示されない - ViewControllerなどのクラスがStructを保持している場合はViewControllerのインスタンス経由でアクセスすることはできます