Xcode では、GDB を使用してデバッグ中にローカル変数を変更できます ( XCode でデバッグ中に NSString 値を変更する方法を参照してください)。LLDB は同様の機能を提供しますか? もしそうなら、どうやってそれを使うことができますか?
74978 次
3 に答える
283
expr myString = @"Foo"
(lldb) help expr
現在スコープ内にある変数を使用して、現在のプログラム コンテキストで C/ObjC/C++ 式を評価します。このコマンドは「生の」入力を取ります (引用する必要はありません)。構文: 式 --
コマンド オプションの使用法: 式 [-f] [-G] [-d] [-u] -- 式 [-o] [-d] [-u] -- 式
-G <gdb-format> ( --gdb-format <gdb-format> ) Specify a format using a GDB format specifier string. -d <boolean> ( --dynamic-value <boolean> ) Upcast the value resulting from the expression to its dynamic type if available. -f <format> ( --format <format> ) Specify a format to be used for display. -o ( --object-description ) Print the object description of the value resulting from the expression. -u <boolean> ( --unwind-on-error <boolean> ) Clean up program state if the expression causes a crash, breakpoint hit or signal.
例:
expr my_struct->a = my_array[3]
expr -f bin -- (インデックス * 8) + 5
expr char c[] = "foo"; c[0]重要な注意: このコマンドは「生の」入力を受け取るため、コマンド オプションを使用する場合は、コマンド オプションの末尾と生の入力の先頭の間に「 -- 」を使用する必要があります。
'expr' は 'expression' の省略形です
于 2012-03-28T12:43:21.893 に答える
23
次のものは私のために働きます。Xcode 8を使用しています。
一部の変数 (「dict」など) を nil に設定してからコード フローをテストする場合は、次の方法を試すことができます。
- 目的の値に初期化した後、ブレークポイントを適切に配置します。
- 次に、lldb コマンドラインで「expression dict = nil」を実行して変更します。(例: 「なし」)
- ブレークポイントをまたぐ。
- 次の行の変数「dict」を確認します。ゼロになります。
コンソールでは次のようになります。
(lldb) expression dict = nil
(NSDictionary *) $5 = nil
于 2017-01-06T09:31:08.850 に答える