在Xcode中,GDB允许您在调试时更改局部变量(请参阅how to change NSString value while debugging in XCode?) . LLDB是否提供类似的功能?如果是这样,我们如何使用它?
expr myString = @"Foo"
(lldb)help expr使用当前范围内的变量评估当前程序上下文中的C / ObjC / C表达式 . 此命令采用“原始”输入(无需引用内容) . 语法:expression - 命令选项用法:expression [-f] [-G] [-d] [-u] - 表达式[-o] [-d] [-u] - 表达式-G <gdb-format >( - gdb-format <gdb-format>)使用GDB格式说明符字符串指定格式 .
-d <boolean>( - dynamic-value <boolean>)将表达式产生的值向上转换为其动态类型如果可供使用的话 .
-f <format>( - format <format>)指定要用于显示的格式 .
-o( - 对象 - 描述)打印由此产生的值的对象描述表达 .
-u <boolean>( - silent-on-error <boolean>)如果表达式导致崩溃,断点,则清除程序状态命中或发出信号 .示例:expr my_struct-> a = my_array [3] expr -f bin - (index * 8)5 expr char c [] =“foo”; c [0]重要说明:由于此命令采用“原始”输入,因此如果使用任何命令选项,则必须在命令选项的结尾和原始输入的开头之间使用“ - ” . 'expr'是'expression'的缩写
以下内容对我有用 . 我正在使用Xcode 8 .
如果要将某个变量(例如“dict”)设置为nil,然后测试代码流,可以尝试以下操作 .
初始化后将断点正确放入所需的值 .
然后在lldb命令行中执行"expression dict = nil"来更改它 . (例如"nil")
跨越断裂点 .
检查下一行中的变量"dict" . 它将是零 .
它看起来像在控制台中 .
(lldb) expression dict = nil (NSDictionary *) $5 = nil
2 回答
-d <boolean>( - dynamic-value <boolean>)
将表达式产生的值向上转换为其动态类型
如果可供使用的话 .
-f <format>( - format <format>)
指定要用于显示的格式 .
-o( - 对象 - 描述)
打印由此产生的值的对象描述
表达 .
-u <boolean>( - silent-on-error <boolean>)
如果表达式导致崩溃,断点,则清除程序状态
命中或发出信号 .
示例:expr my_struct-> a = my_array [3] expr -f bin - (index * 8)5 expr char c [] =“foo”; c [0]重要说明:由于此命令采用“原始”输入,因此如果使用任何命令选项,则必须在命令选项的结尾和原始输入的开头之间使用“ - ” . 'expr'是'expression'的缩写
以下内容对我有用 . 我正在使用Xcode 8 .
如果要将某个变量(例如“dict”)设置为nil,然后测试代码流,可以尝试以下操作 .
初始化后将断点正确放入所需的值 .
然后在lldb命令行中执行"expression dict = nil"来更改它 . (例如"nil")
跨越断裂点 .
检查下一行中的变量"dict" . 它将是零 .
它看起来像在控制台中 .