Slide 1

Slide 1 text

Discover breakpoint improvements まとめ 2021/06/28 YUMEMI.swift #12 feat. HAKATA.swift 〜WWDC Recap~ jollyjoester

Slide 2

Slide 2 text

● このLTはWWDC21のDiscover breakpoint improvementsのセッション動画を見 てざっくりまとめたものです。 ● 実際に動画を見た方がXcodeの操作などイメージつきやすいので、興味が湧いた らぜひセッション動画も見てみてください! このLTについて

Slide 3

Slide 3 text

3つのbreakpoints Breakpointsとは ● 主にdebugのためにプログラムの実行を止めて状況を確認するためのもの このセッションで紹介されている3つのbreakpoint ● Source file breakpoints ● Symbolic breakpoints ● Runtime Issue breakpoints

Slide 4

Slide 4 text

Source file breakpoints ● ファイルごとに設定するbreakpoint ● もっともよく使うのがLine breakpoint ● つまりこれ→ Source file breakpoints

Slide 5

Slide 5 text

● convertedToVolumeにStep inしたいのだけど先にadjustedDensityに入ってしまう 😭 👉それ Xcode 13からはColumn breakpointで解決できるよ! Line breakpointの辛いところ refs. 動画1:41あたり https://developer.apple.com/videos/play/wwdc2021/10209/

Slide 6

Slide 6 text

Column breakpoints refs. 動画2:26〜 https://developer.apple.com/videos/play/wwdc2021/10209/ ● Command + クリックで設定できる ● enable/disableも当然できる ● ダブルクリックでbreakpoint editor開ける ● Control + クリックで↑の操作できるよ 便利〜🎉

Slide 7

Slide 7 text

● SwiftのClosure / Objective-CのBlockのdebugでもLine breakpointはめんどいけ ど ● Column breakpointなら便利🎉 Column breakpoints refs. 動画4:28〜 https://developer.apple.com/videos/play/wwdc2021/10209/

Slide 8

Slide 8 text

Symbolic breakpoints Symbolic breakpoints ● 関数名でbreakpointを設定する方法 どんなときに使う? ● ソースファイルにアクセスできないとき ● 共通の関数を実装するサブクラスがめっちゃたく さんあって全部にbreakpoint貼りたいとき

Slide 9

Slide 9 text

Moduleを指定するといいよ ● ロードされるライブラリとか全部が対象になるから汎用的な単語だったりする場合 はModuleを指定するといいよ。 Symbolic breakpointsのTips refs. 動画7:10〜 https://developer.apple.com/videos/play/wwdc2021/10209/

Slide 10

Slide 10 text

Xcode 13からどこにも解決されていないbreakpointを破線のアイコンで表示するように なったよ Unresolved breakpoints refs. 動画8:16〜 https://developer.apple.com/videos/play/wwdc2021/10209/

Slide 11

Slide 11 text

Unresolved breakpointsの原因はtypoが多い。 ● Find Navigatorから探す ● LLDBで探す Unresolved breakpointsのTips refs. 動画9:20〜 https://developer.apple.com/videos/play/wwdc2021/10209/ image lookup: Moduleを探す -r: 正規表現 -n: 名前 convert: 探す対象の文字列 Fruta: Module指定

Slide 12

Slide 12 text

ケース:BackgroundのスレッドでUIの状態を変えたりする 👉クラッシュほど深刻じゃないのでデフォルトでは一時停止はせ ず、バックトレースをIssue Navigatorに表示するよ これを一時停止したい場合はスキーム Editorのdiagnosisタブで対 応する機能を有効にする必要がある 👉先の例だとMain thread checkerを有効にする必要がある。これ は→ボタンで移動できるよ Runtime Issue breakpoints refs. 動画11:03〜 https://developer.apple.com/videos/play/wwdc2021/10209/

Slide 13

Slide 13 text

まとめ ● breakpointのちょっとした改善とTipsについての動画でした。 ● breakpointsちゃんとのは大事なことなので便利になってありがたいですね ● 操作のイメージなど動画を見るとさらにイメージが付きやすいと思うのでぜひ見て みてください おまけ ● Xcode, Xcode Cloudなど開発者に優しい発表が多いWWDCでしたね! ● Xcode CloudについてはSwift愛好会で発表したので見てみてください ○ https://www.youtube.com/watch?v=OVXr4Rb7zsU&t=3160s

Slide 14

Slide 14 text

Refs. WWDC21セッション動画 ● Discover breakpoint improvements