lldb Xcode, "p" 和 "e" 的区别
lldb Xcode, difference between "p" and "e"
我看过关于 p
和 po
的解释。但似乎无法注意到 p
和 e
之间的区别(如果我是正确的话,expression
是 expression
的缩写)。
他们甚至在 lldb 中有相同的帮助信息:
计算当前线程上的表达式。使用 LLDB 的默认格式显示任何返回值。
据我所知,唯一的区别是e = expression
, p = expression --
.
是啊,有什么区别?什么时候使用一个比另一个更好?
谢谢!
基本的lldb命令是expr
或简称e
。
expr
命令采用控制结果格式和表达式如何 运行 的选项(例如,表达式是否在 运行ning 时忽略断点)。然后它将表达式带到 运行.
需要一些方法来消除选项中表达式的歧义。例如,如果表达式预递减 format
变量 (--format
),则该字符串同样可以指定 --format
选项。 lldb 遵循 Unix 命令行解决方案,其中 --
表示:选项结束,实际参数开始。所以如果你做的是前者,你会说:
(lldb) expr -- --format
这就是 p
存在的原因。由于它是 expr --
的别名,因此变为:
(lldb) p --format
当您知道不需要提供任何选项时,p
是 运行 expr
的便捷方式。无论您键入什么,都将成为您 运行ning 的表达方式。如果你想提供选项,你只需要使用expr
。
关于lldb命令行的一般操作在这里:
我看过关于 p
和 po
的解释。但似乎无法注意到 p
和 e
之间的区别(如果我是正确的话,expression
是 expression
的缩写)。
他们甚至在 lldb 中有相同的帮助信息:
计算当前线程上的表达式。使用 LLDB 的默认格式显示任何返回值。
据我所知,唯一的区别是e = expression
, p = expression --
.
是啊,有什么区别?什么时候使用一个比另一个更好? 谢谢!
基本的lldb命令是expr
或简称e
。
expr
命令采用控制结果格式和表达式如何 运行 的选项(例如,表达式是否在 运行ning 时忽略断点)。然后它将表达式带到 运行.
需要一些方法来消除选项中表达式的歧义。例如,如果表达式预递减 format
变量 (--format
),则该字符串同样可以指定 --format
选项。 lldb 遵循 Unix 命令行解决方案,其中 --
表示:选项结束,实际参数开始。所以如果你做的是前者,你会说:
(lldb) expr -- --format
这就是 p
存在的原因。由于它是 expr --
的别名,因此变为:
(lldb) p --format
当您知道不需要提供任何选项时,p
是 运行 expr
的便捷方式。无论您键入什么,都将成为您 运行ning 的表达方式。如果你想提供选项,你只需要使用expr
。
关于lldb命令行的一般操作在这里: