Xcodeでは、GDBを使用して、デバッグ中にローカル変数を変更できます( XCodeでデバッグ中にNSString値を変更する方法 を参照)。 LLDBは同様の機能を提供しますか?もしそうなら、どのように使用できますか?
expr myString = @"Foo"
(lldb)exprのヘルプ
現在スコープ内にある変数を使用して、現在のプログラムコンテキストでC/ObjC/C++式を評価します。このコマンドは「生の」入力を取ります(ものを引用する必要はありません)。構文:expression-
コマンドオプション使用法:式[-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」の略語です
次のものは私のために動作します。 Xcode 8を使用しています。
いくつかの変数(「dict」など)をnilに設定して、コードフローをテストする場合は、次を試してください。
コンソールのようになります。
(lldb) expression dict = nil
(NSDictionary *) $5 = nil