web-dev-qa-db-ja.com

Xcodeのすべてのメソッドにブレークポイントを自動的に設定するにはどうすればよいですか?

Xcodeのすべてのメソッドにブレークポイントを自動的に設定するにはどうすればよいですか?プログラムがどのように機能するのか、ユーザーインターフェイスを操作するときにどのメソッドが呼び出されるのかを知りたい。

38
  1. Xcodeでアプリを実行します。
  2. ⌘⌃Yを押します([デバッグ]-> [一時停止])。
  3. デバッガコンソールに移動します:⌘⇧C
  4. breakpoint set -r . -s <PRODUCT_NAME>(アプリの名前を挿入)と入力します。

lldbは次のように応答します...

Breakpoint 1: 4345 locations

次に、[続行]ボタンを押すだけです。

breakpoint setは、ブレークポイントを作成するためのlldbのコマンドです。場所は、関数/メソッド名の正規表現(-r)を使用して指定されます。この場合、任意のメソッドに一致する.です。 -sオプションは、スコープを実行可能ファイルに制限するために使用されます(フレームワークを除外する必要があります)。

アプリを実行すると、アプリがメインの実行可能ファイルの関数にヒットするたびにlldbが機能しなくなります。

ブレークポイントを無効にするには、breakpoint delete 1(適切なブレークポイント番号を挿入)と入力します。

57
Nikolai Ruhe

場合によっては、一部のメソッドにのみブレークポイントを設定する方が便利です。

LLDBを使用すると、たとえば、名前ですべてのViewDidLoadメソッドにブレークポイントを設定できます。

(lldb) breakpoint set -n ViewDidLoad

ここで「-n」は名前を意味します。

また、セレクター名でブレークポイントを設定できます。

(lldb) breakpoint set -S alignLeftEdges:

ここで「-S」はセレクターを意味します。

13
Denis Kutlubaev

多くの可能性がありますが、関数だけにブレークポイントを設定する方法はありません。あなたが試すことができます:

breakpoint set -r '\[ClassName .*\]$'

クラス内のすべてのメソッドにブレークポイントを追加するには

breakpoint set -f file.m -p ' *- *\('

ファイル内のすべてのメソッドにブレークポイントを追加するには

多くのファイルで使用することもできます。

breakpoint set -f file1.m -f file2.m -p ' *- *\('

ショートカット:

br se -f file1.m -f file2.m -p ' *- *\('

プレフィックスを付けて、すべてのクラスのすべてのメソッドにブレークポイントを追加できます(クラスのみが可能です)

br se -r . -s Prefix

この行(wzbozonの回答):

breakpoint set -n viewDidLoad

すべてのクラスのすべてのメソッドviewDidLoadにブレークポイントを設定します。

試しましたが、自分のメソッドだけにブレークポイントを設定することはできませんでした。

8