11

大規模なコード ベースの一部で奇妙なNSLogステートメントが出力されており、それがどこから来ているのかを突き止めようとしています。NSLog呼び出すすべての場所に手動でブレークポイントを配置するのではなく、呼び出し元を確認できるように、すべての呼び出しの開始時に 1 つのブレークポイントを配置する方法はありますNSLogか?

4

4 に答える 4

13

特定のログメッセージで中断したい場合は、次を使用できます。

ここに画像の説明を入力

この例は、「警告」という単語を含むすべてのログで中断します。

更新: 新しいデバイスでは $x0 を使用します。シミュレーター以前は $r0 を使用します。$arg0 は、すべてのケースで行う必要があります。

于 2016-01-26T11:31:10.623 に答える
4

ブレークポイント ナビゲーター ( command+ 6) で (下部にプラス記号があります) シンボリック ブレークポイントを追加し、シンボルとして使用NSLogします。

于 2013-06-21T18:12:20.657 に答える
2

これによれば、lldb コンソールでそのようなブレークポイントを設定できます。

breakpoint set --name NSLog

Xcode を使用してこれを行う 1 つの方法は、main関数またはユーザーにブレークポイントを設定することですAppDelegate applicationDidFinishLaunchin(できるだけ早く読んでください)。次に、アプリを実行し、上記のブレークポイントで一時停止すると、lldb コンソールにアクセスできます。上記の行を入力して Return キーを押すと、lldb は次のように出力します。

Breakpoint 3: where = Foundation`NSLog, address = 0x32a3da08

この時点でアプリを再開し、NSLogが呼び出されると再び一時停止します (Debug Navigator を使用してコール スタックに注意してください)。

于 2013-06-21T17:12:02.717 に答える