[lldb-dev] invalid use of 'this' outside of a non-static member function
Greg Clayton
gclayton at apple.com
Wed Jan 7 10:49:44 PST 2015
All expressions are compiled in C++ mode and thus the restriction.
There are a few solutions:
1 - make expressions match the current language of the current frame. So if your function was a C function, you will be restricted from using C++ in your expression
2 - rename your "this" and benefit from the C++ abilities of the expression parser
I personally really like the ability to use "auto" and all of the C++11 constructs in any expression:
(lldb) expr for (auto x = 0; x < my_renamed_this; ++x) { ... }
So I see the problem with C expressions, but I would rather not limit you from being able to access your C++ code from a C function by limiting the language based on where you are stopped.
Greg
> On Jan 7, 2015, at 7:16 AM, mobi phil <mobi at mobiphil.com> wrote:
>
> Hi,
>
> The compiler accepted it, so IMHO LLDB should not complain about it.
>
> I can rename this "this" inside a C function, but it is very likely that other people would name a variable "this" inside C code.
>
>
> rgrds,
> mobi phil
>
>
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
More information about the lldb-dev
mailing list