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
1.7k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Xcodeの Memory graph を使った華麗なるデバッグ
MiyasakaKazutoshi
March 19, 2019
More Decks by MiyasakaKazutoshi
See All by MiyasakaKazutoshi
本当はこわいLLDB
miyasakakazutoshi
8
2.7k
miyasaka_iosdc_lldb_cfp.pdf
miyasakakazutoshi
3
1.7k
Other Decks in Programming
See All in Programming
トークンをケチるな、設計しろ:GitHub Copilotを賢く使うコンテキスト戦略
ochtum
0
270
LaravelLive Japan の裏方のすべて — 第188回 PHP勉強会@東京 (2026-06-24)
suguruooki
2
140
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
820
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
430
ローカルLLMでどこまでコードが書けるか -縮小版 / How much code can be written on a local LLM Shortened
kishida
2
170
才能?センス?知らん、 続けたもん勝ちだ。-- 結婚・出産・癌を越えてなお、私がプロダクトを創り続ける理由
16bitidol
2
640
SLOをサービス品質の共通言語にするために 取り組んできたこと
wakana0222
0
260
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.9k
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
280
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
160
Snowflake Summitでの新機能 CoCo / CoWork / snowflake-summit-2026-overall-what-new-coco
tatsuhiro
1
210
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
220
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Automating Front-end Workflow
addyosmani
1370
210k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.6k
Faster Mobile Websites
deanohume
310
32k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
270
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
67
56k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
180
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
220
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コマンドの特⻑⾧長
ご清聴ありがとうございました!