Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Xcodeの Memory graph を使った華麗なるデバッグ
Search
MiyasakaKazutoshi
March 19, 2019
Programming
5
1.6k
Xcodeの Memory graph を使った華麗なるデバッグ
MiyasakaKazutoshi
March 19, 2019
Tweet
Share
More Decks by MiyasakaKazutoshi
See All by MiyasakaKazutoshi
本当はこわいLLDB
miyasakakazutoshi
8
2.4k
miyasaka_iosdc_lldb_cfp.pdf
miyasakakazutoshi
3
1.5k
Other Decks in Programming
See All in Programming
pylint custom ruleで始めるレビュー自動化
shogoujiie
0
120
ファインディLT_ポケモン対戦の定量的分析
fufufukakaka
0
740
Unity Android XR入門
sakutama_11
0
160
社内フレームワークとその依存性解決 / in-house framework and its dependency management
vvakame
1
560
メンテが命: PHPフレームワークのコンテナ化とアップグレード戦略
shunta27
0
120
PHPのバージョンアップ時にも役立ったAST
matsuo_atsushi
0
120
CSS Linter による Baseline サポートの仕組み
ryo_manba
1
110
お前もAI鬼にならないか?👹Bolt & Cursor & Supabase & Vercelで人間をやめるぞ、ジョジョー!👺
taishiyade
6
4k
GoとPHPのインターフェイスの違い
shimabox
2
190
Amazon S3 TablesとAmazon S3 Metadataを触ってみた / 20250201-jawsug-tochigi-s3tables-s3metadata
kasacchiful
0
170
プログラミング言語学習のススメ / why-do-i-learn-programming-language
yashi8484
0
130
一休.com のログイン体験を支える技術 〜Web Components x Vue.js 活用事例と最適化について〜
atsumim
0
520
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
693
190k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
240
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
114
50k
Thoughts on Productivity
jonyablonski
69
4.5k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
We Have a Design System, Now What?
morganepeng
51
7.4k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
How to Ace a Technical Interview
jacobian
276
23k
Building Applications with DynamoDB
mza
93
6.2k
Transcript
Xcodeの Memory graph を使った華麗なるデバッグ @po_miyasaka try! Swift Pre Talks 2019
⾃自⼰己紹介 @po_miyasaka 「ペンギン村」に住む / 登⼭山 / LLDB /
Debug Navigator Memory Graph
現時点で⽣生成されている クラスインスタンスが すべて表示されている
もしこの画⾯面から 任意のプロパティやメソッドに 簡単にアクセスできたら便便利利
⭕ ブレークポイントを無理理に 作る必要はなくなる
⭕ ブレークポイントを無理理に 作る必要はなくなる ⭕ Memory Graphは いつでも表示できるので 使いやすい
ということで
これを実現するLLDBコマンド 「vinfo」を作りました。 (設定&インポート⽅方法はリポジトリのREAD.mdに記載) https://github.com/po-miyasaka/LLDB
アドレスを渡すと vinfoの使い⽅方
変数が⽣生成される。 vinfoの使い⽅方
メンバにもアクセスできる vinfoの使い⽅方
(デモが失敗した時に⾒見見る記事、Gifイメージあり) http://blog.penginmura.tech/entry/2019/02/03/215957 • プライベートなプロパティを確認 • プライベートなメソッドの実⾏行行 • View Hierarchyでの応⽤用 デモ
⽣生成された変数がSwift、ObjC どちらの⾔言語で扱うべきかを示す。 vinfoの出⼒力力について
「po」の代わりに以下のコマンドで⾔言語を使い分ける Swiftの場合「pos」 Objcの場合「poc」 (これらはvinfoのコード内に定義されたエイリアスです。) vinfoの出⼒力力について
「type lookup」 はメンバ⼀一覧を表示するLLDBコマンド。 vinfoの出⼒力力について
vinfoの出⼒力力について 「type lookup」 はメンバ⼀一覧を表示するLLDBコマンド。 実⾏行行結果
準拠しているプロトコルや エクステンションに派⽣生したメソッドなど も表示できる vinfoの出⼒力力について 実⾏行行結果
vinfoコマンドの特⻑⾧長 • アドレスからSwift, Objcクラスの変数を作成できる。 • 外部ライブラリのクラスに対しても使⽤用可能 • 「Debug View Hierarchy」でも使⽤用可能
• プライベートなメンバにもアクセスできる • type lookup でメンバを確認できる • セットアップが簡単 • コードに影響を与えることなく活⽤用できる
• アドレスからSwift, Objcクラスの変数を作成できる。 • 外部ライブラリのクラスに対しても使⽤用可能 • 「Debug View Hierarchy」でも使⽤用可能 •
プライベートなメンバにもアクセスできる • type lookup でメンバを確認できる • セットアップが簡単 • コードに影響を与えることなく活⽤用できる vinfoコマンドの特⻑⾧長
ご清聴ありがとうございました!