在 lldb 中打印值时,出现以下错误
error: no member named 'rec' in namespace '$__lldb_local_vars'
我的代码是用-g编译的。为什么 lldb 无法打印值?
$__lldb_local_vars
是为了解决 clang 为 lldb 表达式解析器提供的名称查找功能中的一些问题而进行的一些破解。该黑客试图通过将局部变量注入到命名空间中,然后将其导入到表达式中,将局部变量提升到名称查找的头部(在本地可见的类和命名空间查找之前)。这存在一些性能问题,而且它也很脆弱,因为它需要实现所有可见的局部变量。我们做了很多工作来删除当地人,但我们知道我们无法实现这些当地人,但它仍然不能非常可靠地工作。
在 Apple 发布的所有 lldb 中,此 hack 默认情况下处于关闭状态,并通过设置进行控制:
(lldb) set list target.experimental.inject-local-vars
target.experimental.inject-local-vars -- If true, inject local variables explicitly into the
expression text. This will fix symbol resolution
when there are name collisions between ivars and
local variables. But it can make expressions run
much more slowly.
您可以使用settings show
显示此设置的当前值,以及settings set
改变它。
如果您可以提供一个显示此故障的示例,那么向 llvm 错误报告器提交错误将会很有帮助:https://bugs.llvm.org https://bugs.llvm.org.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)