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
まだ NSLog で消耗しているの?
Search
Toshihiro Morimoto
March 07, 2015
Technology
12k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
まだ NSLog で消耗しているの?
yidev 第18回での発表資料です
Toshihiro Morimoto
March 07, 2015
More Decks by Toshihiro Morimoto
See All by Toshihiro Morimoto
Xcode8 で開発はどうかわったのか
dealforest
10
6.5k
魅せるデバッグ技術
dealforest
4
1.6k
LLDB の世界からみた Swift
dealforest
4
5.5k
Xcode で快適なデバッグライフを追い求める
dealforest
29
25k
Intrducing debug in WWDC2016
dealforest
3
830
swift build と Xcode での Build の違い
dealforest
3
2.2k
RIP Xcode Plugin 🙏
dealforest
0
4.9k
Introducing Xcode Editor Extension
dealforest
2
4.7k
Introducing Anglerfish
dealforest
2
3.6k
Other Decks in Technology
See All in Technology
SRE本の知られざる名シーン / The Hidden Gems of Google SRE Book
nari_ex
1
420
生成AI×AWS CDK×AWS FISで"振り返れる"ミニGameDayをつくろう
yoshimi0227
1
360
Genie Ontologyは銀の弾丸かを考える / Is Genie Ontology a Silver Bullet?
nttcom
0
390
知らん間に、回ってる
ming_ayami
0
710
人を動かすのは時間ではなく、納得感 〜新任EMが入社3ヶ月、組織を2回変えた話〜
kakehashi
PRO
3
270
Foxgloveについて 実際にExtensionを開発して公開するまでの話 / About Foxglove: The Story of Developing and Releasing an Extension
ry0_ka
0
290
Empower GenAI with Agile - あなたのアジャイルが生成AIのバフになる仕組み
hageyahhoo
1
210
Amplify Gen2でbackend.tsにCDKを定義する/しない事によるCDKの挙動の違いとユースケース
smt7174
1
390
アップデートで何が変わった?デモで学んで使いこなすIBM Bob2.0
muehara
0
110
なぜ私たちのSREプラクティスはなかなか機能しないのか 〜システムより先に組織を見る〜 / Why our SRE practices aren't really working
vtryo
4
4k
AIコード生成×サプライチェーン攻撃 — PHPが直面する“二重の信頼問題
shinyasaita
0
190
「守りたい体験」を渡すだけで E2E を生成させられるようになった話
hinac0
0
170
Featured
See All Featured
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
650
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
970
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
330
Navigating Team Friction
lara
192
16k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
360
Ruling the World: When Life Gets Gamed
codingconduct
0
280
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
210
Color Theory Basics | Prateek | Gurzu
gurzu
0
390
Building AI with AI
inesmontani
PRO
1
1.1k
Believing is Seeing
oripsolob
1
170
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
220
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
410
Transcript
·ͩ NSLog Ͱফ͍ͯ͠Δͷʁ 2015/03/07 yidev#18 @dealforest Toshihro Morimoto
None
ࣗݾհ
LLVM (ಛʹLLDB) ʹ·ͬͯ·͢
DFTDebugScreenshot
Crying DFTDebugScreenshot
Crying DFTDebugScreenshot cocoapods-browser
Crying DFTDebugScreenshot cocoapods-browser NEW!!
σόοάख๏ • NSLog • Breakpoint • ৺؟ etc…
ਓͳͥ NSLog Ͱফ͢Δͷ͔
ͦͦফͱԿ͔
ফͱ • ͬͯຏΓݮͬͨΓແ͘ͳͬͨΓ͢Δ ͜ͱ • ମྗؾྗΛ͍Ռͨ͢͜ͱ by wikpedia
࣭ʮফ͍ͯ͠Δͱײ͡Δਓʯ
NSLog Λ͏࣌ͲΜͳ࣌ʁʁ • ϩΪϯά • ϓϦϯτσόοά
ͭ·ΓϓϦϯτσόοά ͯ͠Δͱ͖ʹɺզʑ ফΛ͍ͯ͘͠Θ͚Ͱ͢Ͷ
NSLog σϝϦοτ • ϩά͕େྔʹͰͯΔ߹(ྫ͑ HTTP ͷϨεϙϯεΛग़ྗ͍ͯ͠Δͱ͔)ʹɺ ࠐΜͩϩά͕ྲྀΕ͍ͯ͘ͷͰ͔Γ ʹ͍͘ • format
Λຖճ͔͔ͳ͍ͱ͍͚ͳ͍ • ߏମΛग़ྗ͢Δͱ͖ΊΜͲ͍͘͞ • Ϗϧυ͠ͳ͓͞ͳ͍ͱ͍͚ͳ͍
Ϗϧυ͠ͳ͓͞ͳ͍ͱ͍͚ͳ͍
େࣄͳ͜ͱͳͷͰ̎ճݴ͍·ͨ͠
ফ͍ͯ͘͠…
͜͜Ͱ Breakpoint ͷग़൪Ͱ͢
Breakpoint ͷϝϦοτ • ίϯιʔϧͰ LLDB ͷίϚϯυΛೖྗ͠ ͯཉ͍͠ใ͕ಘΒΕΔ • Ϗϧυ͠ͳ͓͞ͳͯ͘Α͍
Ϗϧυ͠ͳ͓͞ͳ͍͍ͯ͘
\(^o^)/\(^o^)/\(^o^)/\(^o^)/
Breakpoint ͷσϝϦοτ • ಛఆͷมΛ֬ೝ͢ΔͨΊʹϒϨΠΫ ͢ΔʹԿೖྗ͢Δͷ͕ΊΜͲ͘ ͍͞ • ίϚϯυཤྺૢ࡞͕ශऑ
ͱ͍͑… 1. ϒϨΠΫʂ 2. εςοϓ࣮ߦ 3. มग़ྗ 4. ղআʂ
܁Γฦ͢ͱ ফ͍ͯ͘͠…
ΊΜͲ͘͘͞ͳͬͯ ݁ہ NSLog Λॻ͍ͯ͠·͏
/(^o^)\ Φϫλ
࣮ࡍʹσόοά͢Δ࣌ ͳΜ͔ͩΜͩͰ NSLog Λ ͍ͬͯΔͷͰͳ͍Ͱ͠ΐ͏͔
ͦΜͳ͋ͳͨͷͨΊʹ
ϓϦϒϨͷ͢ʍΊ
]
]
ϓϦϒϨ(ޠ)
Φεεϝ!!
ϒϨʔΫϙΠϯτͷઆ໌͕ Θ͔Γ͍͢Ͱ͢
ͱ͍͑…
ϓϦϒϨͷઃఆ͕खؒ
ΊΜͲ͘͘͞ͳͬͯ ݁ہ NSLog Λॻ͍ͯ͠·͏
ϓϩάϥϚͷࡾେඒಙ • ଵଦ • ؾ • ၗຫ by Larry Wall
ͱɺ͍͏Θ͚Ͱ࡞ͬͨΑ
https://github.com/dealforest/tuna
Tuna ͱ • Xcode Plugin • ϓϦϒϨΛ؆୯ʹઃఆͰ͖Δ • BackTrace Λग़ྗ͢ΔϒϨΠΫϙΠϯτ
؆୯ʹઃఆͰ͖ΔΑ
ΞΫγϣϯ͖ϒϨΠΫϙΠϯτΛ ؆୯ʹઃఆͰ͖·͢
Δ͜ͱγϯϓϧ͚ͩͲڧྗʂ
Demo ΛݟͯΒ͑Ε ͕͞ΘΔ͔ͳͱ
None
XVim ͍ vnoremap <enter> :xcmenucmd Set Breakpoint Current Line<CR> vnoremap
<C-enter> :xcmenucmd Set Breakpoint Next Line<CR> noremap \<enter> :xcmenucmd Set Backtrace Breakpoint<CR> ~/.xvimrc
DEMO
ҰͰԿΛग़ྗ͠Α͏ͱ͍ͯ͠Δͷ͔͕ UI্͔ΒஅͰ͖ͳ͍ͨΊ ϩΪϯάͱͯ͠͏͜ͱਪ͠·ͤΜ
ࠓޙ • Alcatraz ରԠ༧ఆ • ΫϦςΟΧϧͳόά͕·͍ͩͬͯΔ ͷͰमਖ਼ྃޙϦϦʔε • ͳʹ͔ feedback
Β͑Δͱخ͍͠Ͱ͢
·ͱΊ Tuna Λ༻͢Δ͜ͱͰɺࠓ·ͰΈ͍ͨʹɹ ফ͢Δ͜ͱͳ͘ϓϦϯτσόοά͕ɹɹ Ͱ͖ΔΑ͏ʹͳΔΑʂʂ ϑΟʔυόοΫ͘ΕͨΒ͏Ε͍͠Ͱ͢
͜Ε͔Βফ͚ͭͮ͠·͔͢ʁ
ͦΕͱ Tuna Λ͍·͔͢ʁ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠