[PATCH] D113743: [RFC][clang][DebugInfo] Allow function-local statics and types to be scoped within a lexical block

David Blaikie via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Dec 6 19:00:04 PST 2021


dblaikie added a comment.

In D113743#3174073 <https://reviews.llvm.org/D113743#3174073>, @krisb wrote:

> In D113743#3173981 <https://reviews.llvm.org/D113743#3173981>, @JDevlieghere wrote:
>
>> Hey Kristina, this broke TestSetData.py on GreenDragon: https://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake/39089/
>>
>> Since the bot has been red for several hours I went ahead and reverted your change in 4cb79294e8df8c91ae15264d1014361815d34a53 <https://reviews.llvm.org/rG4cb79294e8df8c91ae15264d1014361815d34a53>.
>
> Thank you for taking care of this!
> I'm looking at the issue, but it's been taking more time than I expected.
>
> This doesn't seem like a flaw of the patch, but likely is a lack of support of records/typedefs scoped within a bracketed block from lldb side.
> I see lldb couldn't handle cases like
>
>   int foo(int a) {
>     {
>       typedef int Int;
>       Int local = a;
>       return local;
>     }
>   }
>
> which produces the same error as for TestSetData.py:
>
>   Process 2487354 stopped
>   * thread #1, name = 'a.out', stop reason = step over
>       frame #0: 0x000000000040111d a.out`foo(a=1) at test_lldb.cpp:5:12
>      2   	  {
>      3   	    typedef int Int;
>      4   	    Int local = a;
>   -> 5   	    return local;
>      6   	  }
>      7   	}
>      8   	
>   (lldb) p local
>   error: expression failed to parse:
>   error: <lldb wrapper prefix>:45:31: no member named 'local' in namespace '$__lldb_local_vars'
>       using $__lldb_local_vars::local;
>             ~~~~~~~~~~~~~~~~~~~~^
>   error: <user expression 0>:1:1: use of undeclared identifier 'local'
>   local
>   ^

Not super surprising that lldb might not be able to deal with DWARF in this shape - is LLDB support important to you/something you plan to work on for this DWARF? Otherwise we might need to opt-out of this functionality when tuning for LLDB, for instance. Unless LLDB-invested folks are interested in doing the integration work (& even then, maybe disabling it for LLDB tuning until that's fixed). @aprantl @JDevlieghere


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D113743



More information about the cfe-commits mailing list