11

私はスパゲッティコードを解きほぐしており、演習として、アプリケーションの起動から、ブレークオンapplicationDidFinishLaunchingしてステップオーバーしてステップインするまでの手順を説明しています。

この最初のメソッドが戻ったとき、私は次にアセンブリに侵入します。いつステップオーバーするか、いつステップインするかを知ることは本当に苦痛です。デバッガーですべてのシンボリックコード(つまり、Xcodeで表示できるコード–これは「ユーザー」コードと呼ばれますか?基本的にはフレームワーク/ライブラリ以外のコード)で一時停止したいのですが、Appleの内部メソッドは気にしません。

私(または前任者)が作成したすべてのメソッドと関数の最初の行(またはすべての行)にブレークポイントを設定するのと実質的に同等のものを探しています。

これを行うLLDBブードゥーはありますか?

4

1 に答える 1

8

製品/モジュールが「MyApp」と呼ばれると仮定すると、他の共有ライブラリ (Apple フレームワーク) の関数を除いて、すべてのモジュールの関数にブレークポイントを設定する簡単な方法があります。

breakpoint set -s MyApp -r .

ただし、これには、静的にリンクしたすべてのライブラリが含まれます。これは、App Store で動的リンクが許可されていないため、持ち込んだライブラリを意味する可能性があります。

クラスにプレフィックスを付ける傾向がある場合は、そのプレフィックスを持つクラスの一部である関数のみを分割することで、結果を絞り込むことができます。プレフィックスが「MA」であると仮定すると、次のようなことができます。

breakpoint set -s MyApp -r ^[^A-Za-z]*MA

コードの大部分をカバーする必要があります。

于 2013-02-25T22:05:13.010 に答える