Xcodeの Memory graph を使った華麗なるデバッグ
by
MiyasakaKazutoshi
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
Xcodeの Memory graph を使った華麗なるデバッグ @po_miyasaka try! Swift Pre Talks 2019
Slide 2
Slide 2 text
⾃自⼰己紹介 @po_miyasaka 「ペンギン村」に住む / 登⼭山 / LLDB /
Slide 3
Slide 3 text
Debug Navigator Memory Graph
Slide 4
Slide 4 text
現時点で⽣生成されている クラスインスタンスが すべて表示されている
Slide 5
Slide 5 text
もしこの画⾯面から 任意のプロパティやメソッドに 簡単にアクセスできたら便便利利
Slide 6
Slide 6 text
⭕ ブレークポイントを無理理に 作る必要はなくなる
Slide 7
Slide 7 text
⭕ ブレークポイントを無理理に 作る必要はなくなる ⭕ Memory Graphは いつでも表示できるので 使いやすい
Slide 8
Slide 8 text
ということで
Slide 9
Slide 9 text
これを実現するLLDBコマンド 「vinfo」を作りました。 (設定&インポート⽅方法はリポジトリのREAD.mdに記載) https://github.com/po-miyasaka/LLDB
Slide 10
Slide 10 text
アドレスを渡すと vinfoの使い⽅方
Slide 11
Slide 11 text
変数が⽣生成される。 vinfoの使い⽅方
Slide 12
Slide 12 text
メンバにもアクセスできる vinfoの使い⽅方
Slide 13
Slide 13 text
(デモが失敗した時に⾒見見る記事、Gifイメージあり) http://blog.penginmura.tech/entry/2019/02/03/215957 • プライベートなプロパティを確認 • プライベートなメソッドの実⾏行行 • View Hierarchyでの応⽤用 デモ
Slide 14
Slide 14 text
⽣生成された変数がSwift、ObjC どちらの⾔言語で扱うべきかを示す。 vinfoの出⼒力力について
Slide 15
Slide 15 text
「po」の代わりに以下のコマンドで⾔言語を使い分ける Swiftの場合「pos」 Objcの場合「poc」 (これらはvinfoのコード内に定義されたエイリアスです。) vinfoの出⼒力力について
Slide 16
Slide 16 text
「type lookup」 はメンバ⼀一覧を表示するLLDBコマンド。 vinfoの出⼒力力について
Slide 17
Slide 17 text
vinfoの出⼒力力について 「type lookup」 はメンバ⼀一覧を表示するLLDBコマンド。 実⾏行行結果
Slide 18
Slide 18 text
準拠しているプロトコルや エクステンションに派⽣生したメソッドなど も表示できる vinfoの出⼒力力について 実⾏行行結果
Slide 19
Slide 19 text
vinfoコマンドの特⻑⾧長 • アドレスからSwift, Objcクラスの変数を作成できる。 • 外部ライブラリのクラスに対しても使⽤用可能 • 「Debug View Hierarchy」でも使⽤用可能 • プライベートなメンバにもアクセスできる • type lookup でメンバを確認できる • セットアップが簡単 • コードに影響を与えることなく活⽤用できる
Slide 20
Slide 20 text
• アドレスからSwift, Objcクラスの変数を作成できる。 • 外部ライブラリのクラスに対しても使⽤用可能 • 「Debug View Hierarchy」でも使⽤用可能 • プライベートなメンバにもアクセスできる • type lookup でメンバを確認できる • セットアップが簡単 • コードに影響を与えることなく活⽤用できる vinfoコマンドの特⻑⾧長
Slide 21
Slide 21 text
ご清聴ありがとうございました!