Xcode lldb抱怨名为“的变量”;这";

Xcode lldb抱怨名为“的变量”;这";,xcode,lldb,Xcode,Lldb,我正在使用Xcode/lldb调试一些C代码。但是我得到了这个错误 (lldb) p (int)g_list_position(start, next) (int) $0 = 1 (lldb) p (int)g_list_position(start, this) error: expected unqualified-id error: invalid use of 'this' outside of a non-static member function 显然,lldb this“thi

我正在使用Xcode/lldb调试一些C代码。但是我得到了这个错误

(lldb) p (int)g_list_position(start, next)
(int) $0 = 1
(lldb) p (int)g_list_position(start, this)
error: expected unqualified-id
error: invalid use of 'this' outside of a non-static member function

显然,lldb this“this”是对类的引用,尽管它在C中是一个完全有效的var(它的值应该是0)。在LLDB中有没有办法避免这个名字?

< P>不,LLDB中的表达式计算器用一些C++来封装表达式(在源级别),以传递参数。我能想到的唯一建议是在
this
指针中获取地址,并将其显式地放在表达式中。表达式求值的目标是,您可以在程序中复制一行源代码,并在lldb中将其作为表达式执行。。但是这是一个不起作用的角情况——C中的变量是C++中的保留词。好吧,这没什么大不了的,但我想我会问的。具有讽刺意味的是,在左边的窗格中,它列出了我可以看到的变量,它可以很好地理解“this”。耶,这不经过表达式求值(它不经过编译器),这是一个简单的变量查找。我怀疑
p此
将失败
v this
(也称为
frame variable this
)将成功,因为frame variable正在当前范围内对具有该名称的变量进行简单搜索。这与Xcode用于填充“局部变量”窗口的机制相同。