[Lldb-commits] Prevent type canonization when dereferencing

Andy Yankovsky via lldb-commits lldb-commits at lists.llvm.org
Wed Jun 2 09:06:37 PDT 2021


I think the problem is specific to references, at least that's the case I
ran into in lldb-eval --
https://github.com/google/lldb-eval/blob/master/docs/lldb-bugs.md#dereferencing-a-value-canonizes-the-type

On Wed, 2 Jun 2021 at 17:26, Raphael “Teemperor” Isemann <
teemperor at gmail.com> wrote:

> I assume your bug is for dereferencing references? In your test taking the
> ref variable and then dereferencing it via the SB API reproduces that I
> think you're running into:
>
> >>> lldb.frame.FindVariable("p_ref").GetType().GetName()
> 'TPair &'
> >>> lldb.frame.FindVariable("p_ref").Dereference().GetType().GetName()
> 'TTuple'
>
> (I made `p_ref` a local to avoid the expression evaluation machinery)
>
> Cheers,
> - Raphael
>
> > On 2 Jun 2021, at 15:27, Lasse Folger <lassefolger at google.com> wrote:
> >
> > Hi Raphael,
> >
> > I have a very similar test for a tool that integrates with lldb which
> failed without the patch.
> > I thought the test in the patch would behave the same which is
> apparently not the case.
> > Thanks for pointing that out. I will need to take another look and will
> get back to you once I figure out what's wrong.
> > Sorry for the inconvenience.
> >
> > kind regards,
> > Lasse
> >
> >
> > On Wed, Jun 2, 2021 at 1:15 PM Raphael “Teemperor” Isemann <
> teemperor at gmail.com> wrote:
> > Hi Lasse,
> >
> > the test from the patch passes for me even without your non-test
> changes. Not sure if you attached the wrong diff or it needs to be applied
> on a specific commit that is not ToT? Can you maybe try pushing your code
> to some git repo?
> >
> > Your change to TypeSystemClang (which I assume removes the
> canonicalization of parent_qual_type) is from what I can see not actually
> changing the result value of `GetChildCompilerTypeAtIndex`. It looks like
> the return value for pointer types is computed independently from
> `parent_qual_type` without any canonicalization.
> >
> > Cheers,
> > - Raphael
> >
> >> On 2 Jun 2021, at 11:39, Lasse Folger via lldb-commits <
> lldb-commits at lists.llvm.org> wrote:
> >>
> >> <0001-lldb-prevent-canonization-of-type-when-dereferencing.patch>
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20210602/1c4b9730/attachment-0001.html>


More information about the lldb-commits mailing list