Currently variables appearing inside shared clause of OpenMP task construct are not visible inside lldb debugger.
This is because compiler does not generate debug info for it.
* thread #1, name = 'a.out', stop reason = breakpoint 1.1
frame #0: 0x0000000000400934 a.out`.omp_task_entry. [inlined] .omp_outlined.(.global_tid.=0, .part_id.=0x000000000071f0d0, .privates.=0x000000000071f0e8, .copy_fn.=(a.out`.omp_task_privates_map. at testshared.cxx:8), .task_t.=0x000000000071f0c0, __context=0x000000000071f0f0) at testshared.cxx:10:34
7 else {
8 #pragma omp task shared(svar) firstprivate(n)
9 {
-> 10 printf("Task svar = %d\n", svar);
11 printf("Task n = %d\n", n);
12 svar = fib(n - 1);
13 }
(lldb) p svar
error: <user expression 0>:1:1: use of undeclared identifier 'svar'
svar
^
(lldb)After the current patch, lldb is able to show the variable
* thread #1, name = 'a.out', stop reason = breakpoint 1.1
frame #0: 0x0000000000400934 a.out`.omp_task_entry. [inlined] .omp_outlined.(.global_tid.=0, .part_id.=0x000000000071f0d0, .privates.=0x000000000071f0e8, .copy_fn.=(a.out`.omp_task_privates_map. at testshared.cxx:8), .task_t.=0x000000000071f0c0, __context=0x000000000071f0f0) at testshared.cxx:10:34
7 else {
8 #pragma omp task shared(svar) firstprivate(n)
9 {
-> 10 printf("Task svar = %d\n", svar);
11 printf("Task n = %d\n", n);
12 svar = fib(n - 1);
13 }
(lldb) p svar
(int) $0 = 9
(lldb)
nit: We could improve this comment.