cor3ntin added a comment.

In D153536#4475240 <https://reviews.llvm.org/D153536#4475240>, @dblaikie wrote:

> In D153536#4475199 <https://reviews.llvm.org/D153536#4475199>, @cor3ntin 
> wrote:
>
>> In D153536#4474733 <https://reviews.llvm.org/D153536#4474733>, @dblaikie 
>> wrote:
>>
>>> Maybe try testing with more different values, to demonstrate which entities 
>>> the debugger is finding?
>>>
>>>   int _ = 1;
>>>   int _ = 2;
>>>   {
>>>     int _ = 3;
>>>     int _ = 7;
>>>   }
>>>
>>> Or something like that. But, honestly, if the point is that these variables 
>>> should be unnameable - perhaps we shouldn't generate any DWARF for them?
>>
>> The variables should still be inspectable, ideally. It's true it makes no 
>> sense to be able to use them in expressions, and maybe if lldb use clang to 
>> evaluate expressions that would just work?
>
> I think that's going to be tricky - because we don't emit DWARF to say where 
> one variable's lifetime starts compared to another in the same scope - so 
> likely a debugger would just always show the first or last variable with the 
> same name in a given scope (so in the above example you could probably only 
> print {1,3} or {2,7}) - and getting it wrong is more likely and more 
> problematic than existing cases of shadowed variables. If we can't get this 
> right, which I don't think we can, practically speaking, at the moment (the 
> DWARF feature we'd have to support to do this better would probably be 
> `DW_AT_start_scope` to say at what instruction the lifetime of a variable 
> starts) - it may be best not to include it at all?

It doesn't seems to be confused on simple examples

  cpp
  * thread #1, name = 'placeholder', stop reason = step in
      frame #0: 0x0000555555555157 placeholder`main at 
debug_placeholder.cpp:8:13
     5        {
     6            int _ = 4;
     7            int _ = 5;
  -> 8            int _ = 6;
     9        }
     10   }
  (lldb) frame variable
  (int) _ = 1
  (int) _ = 2
  (int) _ = 3
  (int) _ = 4
  (int) _ = 5
  (int) _ = -9432

That being said, if you think it's more prudent, I would not mind


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D153536/new/

https://reviews.llvm.org/D153536

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to