Xcodeのすべてのメソッドにブレークポイントを自動的に設定するにはどうすればよいですか?プログラムがどのように機能するのか、ユーザーインターフェイスを操作するときにどのメソッドが呼び出されるのかを知りたい。
breakpoint set -r . -s <PRODUCT_NAME>
(アプリの名前を挿入)と入力します。lldbは次のように応答します...
Breakpoint 1: 4345 locations
次に、[続行]ボタンを押すだけです。
breakpoint set
は、ブレークポイントを作成するためのlldbのコマンドです。場所は、関数/メソッド名の正規表現(-r
)を使用して指定されます。この場合、任意のメソッドに一致する.
です。 -s
オプションは、スコープを実行可能ファイルに制限するために使用されます(フレームワークを除外する必要があります)。
アプリを実行すると、アプリがメインの実行可能ファイルの関数にヒットするたびにlldbが機能しなくなります。
ブレークポイントを無効にするには、breakpoint delete 1
(適切なブレークポイント番号を挿入)と入力します。
場合によっては、一部のメソッドにのみブレークポイントを設定する方が便利です。
LLDBを使用すると、たとえば、名前ですべてのViewDidLoadメソッドにブレークポイントを設定できます。
(lldb) breakpoint set -n ViewDidLoad
ここで「-n」は名前を意味します。
また、セレクター名でブレークポイントを設定できます。
(lldb) breakpoint set -S alignLeftEdges:
ここで「-S」はセレクターを意味します。
多くの可能性がありますが、関数だけにブレークポイントを設定する方法はありません。あなたが試すことができます:
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
にブレークポイントを設定します。
試しましたが、自分のメソッドだけにブレークポイントを設定することはできませんでした。