<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/61081>61081</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [lldb] Cannot evaluate static local variable
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          jwnhy
      </td>
    </tr>
</table>

<pre>
    My setup:
```console
$ uname -a
 Linux ITXGentoo 6.1.12-gentoo #1 SMP PREEMPT_DYNAMIC Fri Feb 17 09:42:40 CST 2023 x86_64 12th Gen Intel(R) Core(TM) i7-12700K GenuineIntel GNU/Linux
$ clang -v
  clang version 15.0.7
  Target: x86_64-pc-linux-gnu
 Thread model: posix
  InstalledDir: /usr/lib/llvm/15/bin
 Configuration file: /etc/clang/clang.cfg
  System configuration file directory: /etc/clang
  Selected GCC installation: /usr/lib/gcc/x86_64-pc-linux-gnu/11
  Candidate multilib: .;@m64
 Candidate multilib: 32;@m32
  Selected multilib: .;@m64
```

**Abnormal** Code:
```c
int main(int argc, char** argv){
  static int A = 11;
  static int S = 11;
  return 0;
}
```

Normal Code
```c
int main(int argc, char** argv){
  static int S = 11;
  return 0;
}
```

Compilation command:
```shell
gcc main.c -g
```

`lldb` **abnormal** output:
```console
$ lldb a.out
(lldb) target create "a.out"
Current executable set to '/home/john/documents/debugger-bugs/llvm_temp/a.out' (x86_64).
(lldb) b main
Breakpoint 1: where = a.out`main + 11 at main.c:4:10, address = 0x0000000000001130
(lldb) r
Process 308634 launched: '/home/john/documents/debugger-bugs/llvm_temp/a.out' (x86_64)
Process 308634 stopped
* thread #1, name = 'a.out', stop reason = breakpoint 1.1
    frame #0: 0x0000555555555130 a.out`main(argc=1, argv=0x00007fffffffdbf8) at main.c:4:10
   1    int main(int argc, char** argv){
   2      static int A = 11;
   3      static int S = 11;
-> 4      return 0;
   5    }
   6
(lldb) frame v
(int) argc = 1
(char **) argv = 0x00007fffffffdbf8
(int) A = <empty constant data>

(int) S = <empty constant data>

(lldb) p A
error: expression failed to parse:
error: <lldb wrapper prefix>:45:31: no member named 'A' in namespace '$__lldb_local_vars'
    using $__lldb_local_vars::A;
          ~~~~~~~~~~~~~~~~~~~~^
error: <user expression 0>:1:1: use of undeclared identifier 'A'
A
^
```

If there is only **one** static variable, everything works fine again.

```console
$ lldb a.out
(lldb) target create "a.out"
Current executable set to '/home/john/documents/debugger-bugs/llvm_temp/a.out' (x86_64).
(lldb) b main
Breakpoint 1: where = a.out`main + 11 at main.c:3:10, address = 0x0000000000001130
(lldb) r
Process 309210 launched: '/home/john/documents/debugger-bugs/llvm_temp/a.out' (x86_64)
Process 309210 stopped
* thread #1, name = 'a.out', stop reason = breakpoint 1.1
    frame #0: 0x0000555555555130 a.out`main(argc=1, argv=0x00007fffffffdbf8) at main.c:3:10
   1    int main(int argc, char** argv){
   2      static int S = 11;
-> 3      return 0;
   4 }
   5
(lldb) p S
(int) $0 = 11
(lldb) frame v
(int) argc = 1
(char **) argv = 0x00007fffffffdbf8
(int) S = 11
```

Combining with issue #61046, I would presume that there are something weird in `lldb`'s static variable handling.
In this issue, `lldb` unable to evaluate value of a static variable, in #61046, the variable is invisible.
Though I don't think their root-causes are same...

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWF9v6joS_zTmZQRybCDwwAOFclTt9ujotivtPlVOPCQ-x7Ej26Hty372lZ2EtgdutX_u3ZVW12oBj-e_Z35DEN6ryiBuyOKGLPYT0YXaus33Z1O_TgorXzf3r-AxdC3hW0L3hG7JkvZ_pTXeahyobA6dEQ3CVPQU-LMy3QvcPf71C5pgLSxn2Sxj06rfEcYzeLj_Bt9-ub29__b4tP_b1-393Q4OTsEBC8hyoGvCt3MWXyjsHh6BUcbhZbV8Ws4hY6GGL2jgzgTUhK1-IWwNO-uQsNXjfdyofJqxnNI_Rb5OGUys8OXrXwg7JPfenC-1MBVMT4Pzw_6EzitrIFvM6Cwfzx6FqzAQvh18mbblVEd108p0A9Nj7VBIaKxEHTlb69XLqODO-CC0RrlXLh4Sdui8I-ygVRFf9akh7JAtCDsUygxSO2uOquqcCNGjo9I4iGIoCTskh8f3WXmsRmMPrz5gA-WFOEjlsAzWvV5RNAqjxjKghC-7Haje7aThittVGcWvpYQdsmzUuBNGKikCQtPpoKIo38KM8Bsyp81yPkZ7lY2zgY-zCw8_U3cu2mE7XHv82xbGukbofgc7K_FKrfd7ZQI0QhnCVvGjcFVJ2A7KWrhBXLjqRNia5Dejfz6IoEqI_FsgfA9ZFp27PH24PHUYOmeAnkkk338S0NcUSB_C7-H_f-7hzjat6gsISts0wsjLZPsate5pVVkmh2clTKvPrnJJtZYFWVLoAxEfb9V2oe3CP4FhUQuIme3CSFslxWwNIXU9lA5jVRLGejY2VOKucw5NAHzBsgui0BiBE0KEupywQ20bJOzw3daGsIO0ZdegCT5-xqKrKnTToqv80P5PAZuWsMNgIwfCVn1nEbaeXfhW9NeayDcOxY_WxgvLYi881-gw3VyvbEkjLxB2A1kGIgwJjihL-DajsSKElA69T1L0hb5bWcbphXnXU745W0YpTldLPgctOlPWKHuo-I1zcNWiD7ZtUZ7bG0KPwnHYxLDSgIoxEZaPWiM9yoFD4a1Jx8W7FM7OyAVwdEkB4zTG1CdmMa6M0w8ZJmyVGozvk-3UWXzfC-XHfsniuIoJvHILo9EsGv53GhcYpPU5AAG_4Lpo8ynhtzDv-S4aHgAW8eDc-ACwvKiQPnOnM12ZkOJ2VdlbO5_EmIYmHjhO78rwQ-J-UtZHR_gOmza8xoHngzABpAiC8NuP0D8KPfxLQmM4LQw0dM6mEY4vbeyYNFuF0ihj57fC-bdpcuYlfJdw5tmJtkUHrcOjeonW-Ha-IHzLU-MaCw02BbpUt7GK821sA2USwbeixL6x5k9PUeGTtqXQTyfhfCSfy7bzylRwlY1vCd9u31_msP5-ZZHF7WUknUf3Pnrax5EN_9B5BHuEzkgstXAoQUk0QR0VujGkXuuY5tHKVaS_O0JIgKY8WKNfh1KxBodGGAr5JJyKIBzbBE_oXkMdk_Bs3Q8PR2UQRBU77qcp8sdYuBwL_DcbC2uW0f_uWEgW_y_GAv_9xsJ1wOe_DvjzD2i_uAKPDz_jLGFzOpr5XwyHh4_Gf-XLaaFMQgkValDed-lWlxmdL2Ne7-DZdlpGvPZdgxBqEQY0Eg7B2wYHlEHlZMTpt--lhOX-Z2yCWhiplamGzr0zEGrle8vR4LuvtZ1JEsECnoTuItbE94St4hropV5-8z3U-GY32jAn5VWhcbD9WNuuquEOpDWE5TEuZX5EMeXAWRumpeg8-j5S0eBsNkhO5IbLNV-LCW6yZZ4vF4v1PJvUmyxnUuQMKa5Lma_wOJ8zIY6MSizXJV1P1CY-0FNOM5pzxrIZl0wuKR5R5oUojpzMKTZC6Vns-5l11SSlZrPM6CqbaFGg9umnC8YMPo95Y2Sxn7hNlOlxY0618sG_aQkq6PSbR8ruYh-fNo0Nb6kd8pkG5Tltk87pTR1Cm8YmO8RHXhXqrpiVtnl7bE92W2e_YxkIOySnInYlp_8RAAD__1IfB2Y">