如何在Xcode中使用LLVM进行debugging时更改variables值?
在Xcode中,GDB允许您在debugging时更改局部variables(请参阅在XCode中debugging时如何更改NSString值 )。 LLDB是否提供类似的function? 如果是这样,我们该如何使用它?
expr myString = @"Foo"
(lldb)帮助expr
在当前程序上下文中使用当前位于范围内的variables评估C / ObjC / C ++expression式。 这个命令需要'原始'input(不需要引用的东西)。语法:expression式 –
命令选项用法:expression [-f] [-G] [-d] [-u] – expression式[-o] [-d] [-u] – expression式
-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]重要提示:由于此命令采用“原始”input,如果使用任何命令选项,则必须在命令选项结尾和原始input开始之间使用“ – ”。
“expr”是“expression式”的缩写
以下的东西适合我。 我正在使用Xcode 8。
如果你想设置一些variables(例如“dict”)为零,然后testing代码stream,你可以尝试下面的代码。
- 将初始化后的断点正确放置到所需的值。
- 然后在lldb命令行中执行“expression dict = nil”来改变它。 (例如“无”)
- 跨越中断点。
- 检查下一行中的variables“dict”。 这将是零。
它将看起来像在控制台中。
(lldb) expression dict = nil (NSDictionary *) $5 = nil
- 如何在Visual Studiodebugging器中显示一个dynamic分配的数组?
- Visual Studio“无法在Web服务器上启动debugging。 networking服务器没有及时回应。“
- 无法加载这样的文件 – 脚本/导轨:通过RubyMine进行远程debugging时出现此错误
- 什么是debugging器,它如何帮助我诊断问题?
- 如何debuggingRESTful服务?
- 在Visual Studio中预处理后,如何查看C / C ++源文件?
- 如何在Tomcat中将级别日志logging设置为DEBUG?
- Android Studio的debugging器不会在库模块中的断点处停止
- 我如何debuggingAppleScript?