<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">