xiaobai marked an inline comment as done.
xiaobai added inline comments.
================
Comment at: source/Core/ValueObject.cpp:1706-1708
+ for (auto *runtime : process->GetLanguageRuntimes()) {
+ if (runtime->IsWhitelistedRuntimeValue(GetName()))
+ return false;
----------------
aprantl wrote:
> clayborg wrote:
> > aprantl wrote:
> > > jingham wrote:
> > > > clayborg wrote:
> > > > > davide wrote:
> > > > > > clayborg wrote:
> > > > > > > Still seems weird that any language can white list a variable by
> > > > > > > name. Say swift has a variable named "this" which is truly should
> > > > > > > be hidden and is marked as artificial, we will always show it...
> > > > > > Swift has no `this`, it has `self`. And yes, there are many places
> > > > > > in the debugger where `self` is mentioned explicitly by name and
> > > > > > has special handling. Also, I think we want to show it, most of the
> > > > > > times.
> > > > > Exactly Davide. **Any** language can whitelist **any** variable they
> > > > > want for **any** other language regardless of the language of origin
> > > > > of the current ValueObject.
> > > > I agree with Greg. Otherwise various languages are going to fight
> > > > about their respective white lists. We should really get the
> > > > ValueObject's runtime language with
> > > > ValueObject::GetObjectRuntimeLanguage() and then asking that runtime.
> > > That's true, but in practice not likely a big problem, since you'd, e.g.,
> > > need to have an *artificial* variable called `self` in C++ for this to
> > > surface.
> > What variables are we actually trying to not show here? Seems like we
> > mostly want to see the variables, even artificial ones. Does anyone know
> > what the variables that we don't want to see are? And how big of a problem
> > are they?
> The ones Jim mentioned earlier: Clang injects helper variables for VLA size,
> Swift injects various kinds of type metadata. We definitely do want to hide
> them.
> We should really get the ValueObject's runtime language with
> ValueObject::GetObjectRuntimeLanguage() and then asking that runtime.
This isn't going to work though. If you want to know whether you should hide
something like `_cmd`, then `GetObjectRuntimeLanguage` is going to give you
`eLanguagetypeC`, which has no runtime. If it's marked as artificial, then
you'll not see it even though ObjCRuntime whitelists it.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D63240/new/
https://reviews.llvm.org/D63240
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits