在 Xcode 中,GDB 允许您在调试时更改局部变量(请参阅如何在 XCode 中调试时更改 NSString 值?)。LLDB 是否提供类似的功能?如果是这样,我们如何使用它?
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 – (index * 8) + 5 expr char c[] = “foo”; c[0] 重要提示:由于此命令采用“原始”输入,因此如果您使用任何命令选项,则必须在命令选项的结尾和原始输入的开头之间使用“-”。 “expr”是“表达式”的缩写
(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 – (index * 8) + 5 expr char c[] = “foo”; c[0]
重要提示:由于此命令采用“原始”输入,因此如果您使用任何命令选项,则必须在命令选项的结尾和原始输入的开头之间使用“-”。
“expr”是“表达式”的缩写