Novall Khan
SplitwiseでiOSエンジニアをしており、Apple Watch上での割り勘できる機能の開発をしています。SplitwiseのiPhoneアプリに素晴らしい新機能を実装しました。また、HCIの研究者、メンタルヘルス、technology spaceへのコントリビューター、コンピューターが出てくる以前のコンテキストでのコーディングに対する提唱者でもあります。
デバッグはLLDBとSwiftコンパイラの日々の進歩によってさらに簡単になっています。デバッグコンソールを使った新しいテクニック、Swiftにおけるエラーハンドリング、特定のエラーが発生したところでブレークする方法を学びます。またデータフォーマットの方法の改善、名前付きブレークポイントなどを見ていきます。
友達と費用を分けるアプリを作っています。ルームシェアとかグループ旅行とか。 多言語対応していて、日本語対応手伝ってくださるかたQAセッションへぜひお越しください。
LLDBの話を何故するのか、いろいろ難しいことにぶつかることがあってツールがあったほうが良い。データフォーマットが良くなればエラーをより早く見つけることが可能になる。
スマートにブレークポイントを設定することで、ブレークポイントを編集、名前をつけたりすることでやりやすくする。
コンパイラはLLDBの重要な部分です。コンパイラでプログラムの機能の仕方、データレイアウトの方法、変数関数の呼び方を見ることが出来ます
p コマンドを送るだけです。
LLDBには2つのコンパイラが有ります、clangはObjective-C。SwiftはSwfitコンパイラ。
なぜこのシンプルなループカウンタの話をするか
SwiftコンパイラはLLDBの中に入っている
実行時にプログラムをインジェクトすることが出来る
LLDBがデータをコンパイラに示してこのコードを生成する
LLDBがたくさんのことを裏でやってくれる。モジュールにもアクセスできる。
Objective-Cでは常にこのようでは、ありません。
2つのNameSpaceがあります。
Swiftの結果は$R0に格納されます
詳細がすぐに分かります
時としてエラーの結果を見たいのではなくエラーを起こしたコードを見たい時もあると思います。
-O で条件を特定のものだけにすることが出来ます
インターフェースなら
ここからExceptionBreakpoint:シンボリックなブレークポイントを仕掛け特定のメッセージの発生にブレークポイントを設定できます
最初の3回スキップとか
華々しくないかもしれないが素晴らしい。ネストされたデータを扱うときなど。
Swiftには po がある。インプロセスフォーマットモデル。
これら4つに基づきます
CustomStringConvertibleですね。
みにくいのでCustomStringConvertibleを実装してみます
Thank you
へー、ブレークポイントそんな使い方で来たのか。 #tryswiftconf
— Yoshitaka Inoue (@inoue0426) 2016年3月3日
特定の Error が throw された時だけブレークすることできたのか #tryswiftconf
— 宇佐見 公輔 (@usamik26) 2016年3月3日
break しない breakpoint を設定して print デバッグをすることもできますよ。
— Toshihiro Morimoto (@dealforest) 2016年3月3日
簡単にその breakpoint を設定できるplugin です https://t.co/quTXhwv1Zz #tryswiftconf
#tryswiftconf 素晴らしい LLDB tips が惜しげも無く共有されていてすごい
— Kosuke Ogawa (@koogawa) 2016年3月3日
#tryswiftconf
— WorldDownTown (@WorldDownTown) 2016年3月3日
WWDCのLLDB関連の動画はこれだろうか。https://t.co/CmwOZ7zfeGhttps://t.co/zcA02Bkq5Ehttps://t.co/K0JDygSu6Ahttps://t.co/3GSfZJFPZt
「Tips出血大サービス! SwiftコンパイラとLLDBの連携テクニック #tryswiftconf」をトゥギャりました。 https://t.co/hUQu5aMNp5
— トゥギャッター開発まとめ (@tg__dev) 2016年3月3日
気に入った記事は はてなブックマーク
はてなブックマークアプリiOS開発チームから来ました! はてなブックマークにはSwift特集があります! 良い記事を見逃さないように、ご利用ください! http://b.hatena.ne.jp/hotentry/it/Swift
そして良いまとめ記事があったらはてなブックマークでブックマークしましょう! try! Swift の記事で盛り上がると嬉しいです!