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

    <tr>
        <th>Summary</th>
        <td>
            [lldb] lldb not reading compile units for binaries compiled with gdwarf64
        </td>
    </tr>

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

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

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

<pre>
    I expect `lldb` to be able to display source lines in backtraces and print the program sources.
It does not seem to work for binaries compiled with the `-gdwarf64` flag.
**_clang_**: 20.1.2
**_lldb_**: 20.1.2

Reproduction environment setup
```
$ docker run --rm -it fedora:43
$ cat /etc/redhat-release
Fedora release 43 (Rawhide)
$ uname -a
Linux 63ba7c3804df 6.8.0-56-generic #58-Ubuntu SMP PREEMPT_DYNAMIC Fri Feb 14 15:19:53 UTC 2025 aarch64 GNU/Linux
$ dnf install -y lldb clang
$ clang++ --version
clang version 20.1.2 (Fedora 20.1.2-3.fc43)
Target: aarch64-redhat-linux-gnu
Thread model: posix
InstalledDir: /usr/lib64/llvm20/bin
Configuration file: /etc/clang/aarch64-redhat-linux-gnu-clang++.cfg
$ lldb --version
lldb version 20.1.2
$ cat <<EOF > main.cpp
#include <iostream>

int main()
{
  std::cout << "Hello World!" << std::endl;
  return 0;
}
EOF
```

The normal behavior:
```
$ clang++ -g main.cpp -o main
$ lldb --batch -O "settings set target.disable-aslr false" -o "breakpoint set --name main" -o "run" main
(lldb) settings set target.disable-aslr false
(lldb) target create "main"
Current executable set to '/main' (aarch64).
(lldb) breakpoint set --name main
Breakpoint 1: where = main`main + 24 at main.cpp:5:13, address = 0x00000000004008c4
(lldb) run
Process 107 launched: '/main' (aarch64)
Process 107 stopped
* thread #1, name = 'main', stop reason = breakpoint 1.1
    frame #0: 0x00000000004008c4 main`main at main.cpp:5:13
   2
   3    int main()
   4 {
-> 5      std::cout << "Hello World!" << std::endl;
   6      return 0;
   7    }
```

When compiled with `-gdwarf64`, the sources are not printed anymore:
```
$ clang++ -g -gdwarf64 main.cpp -o main
$ lldb --batch -O "settings set target.disable-aslr false" -o "breakpoint set --name main" -o "run" main
(lldb) settings set target.disable-aslr false
(lldb) target create "main"
Current executable set to '/main' (aarch64).
(lldb) breakpoint set --name main
Breakpoint 1: where = main`main, address = 0x00000000004008ac
(lldb) run
Process 125 launched: '/main' (aarch64)
Process 125 stopped
* thread #1, name = 'main', stop reason = breakpoint 1.1
    frame #0: 0x00000000004008ac main`main
main`main:
->  0x4008ac <+0>:  sub    sp, sp, #0x20
    0x4008b0 <+4>:  stp    x29, x30, [sp, #0x10]
    0x4008b4 <+8>:  add    x29, sp, #0x10
    0x4008b8 <+12>: mov    w8, wzr
```

Without `-gdwarf64`, the compile units are read successfully:
```
$ lldb main
$ (lldb) target create "main"
Current executable set to '/main' (aarch64).
$ (lldb) script lldb.target.module['main'].GetNumCompileUnits()
1
$ (lldb) script
Python Interactive Interpreter. To exit, type 'quit()', 'exit()' or Ctrl-D.
>>> m = lldb.target.module['main']
>>> for i in range(m.GetNumCompileUnits()):
... print(m.GetCompileUnitAtIndex(i))
...
0xb76c45e67390: CompileUnit{0x00000000}, language = "c++14", file = '/main.cpp'
```

With `-gdwarf64`, the compile units are not read successfully ?
```
$ lldb main
$ (lldb) target create "main"
Current executable set to '/main' (aarch64).
$ (lldb) script lldb.target.module['main'].GetNumCompileUnits()
1
$ (lldb) script
Python Interactive Interpreter. To exit, type 'quit()', 'exit()' or Ctrl-D.
>>> m = lldb.target.module['main']
>>> for i in range(m.GetNumCompileUnits()):
... print(m.GetCompileUnitAtIndex(i))
...
0xbf8930d7abf0: CompileUnit{0x00000000}, language = "<not loaded>", file = ''
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsWEtv4zgS_jX0pSCBIvWwDz44djwbYPuB3m4M9tSgpLLNbZrUUlTi7K9fFCUndjrpaQz2cZgJjMgiqz5WFb-PZUn1vd5bxCUrblixmakhHJxfKmWMb2e1ax-Xd4CnDpsArOTGtDUrOQQHNYKqDdLXVvedUY_Qu8E3CEZb7EFbqFXzLXjVYA_KttB5bQOEA0Ln3d6r4-TQp4yv7gK0DnuwLkCPeCTcB-e_wc55qLVVXmMPjTt22mALDzocIhQrebJvH5TflTlFtjNqT3hM0OdrY5Tdfx1vmFyB4GmWiud5SujVab76hJ137dAE7Sygvdfe2SNaCi8MHdmUfPoQXA6ta76hBz9YSBJ_hEQH2GHrvGJylcvJqlEBmNhiaJjYemwPKiQeDaoeGV9toz1MA5BLYGL-ST0cdItMLCaMwaojQqIYX_1V2-EEpaxV1cg5z9sdlOk85UlRJnu06HUDTMhinnypBxsG-Nu7j_Dx0-3tu4-fv27-_n717m4NW69hizVkOWQFk6tsweSqkPDl8xoEFwUo5ZtDmcMv778wsY1rnpO2O9C2D8oYSB6B6gmx6Od043dxw8QNJMk9-l47y_gqjsN0P9Wdcp0KMA4kMt01uRwT_6z8HgPt0hRNMlXPUDjJ3g5kdPCoWji6Fg2Zdq7XFOrdGCK2G-1pnInt0HsmtkbXZU5Xc38UnIltrSm8tbM7vR-8iru_0wYnr3Hfpqy2b0WSXKSdNrtzMWJ1LqsQB66LcEkTuWZyffthC0zewlFpmzZdZJ6Q2jZmaJFstOuDR3Vk8nZkLsmMrJmYT5ypbhhfAfShZZKI3rjhDA9MiL-gMQ5-dd60TGRMiPPckwPa1jA5ongMg7fAx3tWbRhf3X7YvlQEbQaCdf6oDNR4UPfaUe1fUc4VSfZPmULixjyuqler0Bwg-UCB9xiCtvueNAkhEiRtdU8HU6J642GnTI-UUOLIvvaovnVOjyqGJIlCGmt1tvFDvHlaeB4PPbGAn1zsymc0g8ajCkjo01pEscF7Ok7whM0Q4lkagSmIiontaFmRKCaaMbFIr-F_kA9f3TxPZsTehwN6IsxmNCg5XYBqLnJQ4ZlgchUPAcnEGlTbeuz76MZP_Okv53ze5NfRUOX46qN3DXlkvAKjBtscsB3F82ZWL7z64LoO2_GUhjBKmgmZUUAxQ4qGiWoCo2HyAY-qdzbOXlQmS7PIW4Cdj85Ccgro-3SuCvNqRSKOGC-SIL_TGgDkMAouIdkWEP_-M9KDckS7liAAVDQ6SvGFCH89oH3RN1_0TCoftdKpG4PyGNtw7NfYgrKPR-fxp6T7hPuniP-HIv4toarmh0IVxe8Rqij-X0JVzVXyfHV5F1kalQf8NFmTpMQNpwYpqQ0OdZRkF-OJ_2mpk-DT8qNjzSfH_MkxdDR9EgvyOckoHVbcXGBknBWba5h8gpmfYVTbXsBcO195zifPTEyuR3dP0w9zcnn4l39F7joc4gnzusangwAGq8Oo9Lhn_dDQpu4GYx5f13nU7YWO_-vyuFqib7zuQgwinUR7dO1gkB5bnulVbNJfMLwfjusxzS-U5dPJnL2FS6x-DAdn4c4G9KoJ-h7H753HgD6Fzw7wpEMs42NHWVb_HOg-Yo_MZqIabaYxcB7WwZtkEzOiHbyNP-Qi7387lysnegzS9FDlld0jE_Pj26mKxbiHaZqOh_jZ_MJ2Fe5siycm5npyifaMr_iprsomL7Cs5CLq78KNVTfPaqR-I9ZAHWBQ-7PYRTO2gywnDoh1_PV8PgimPY9NVVSv0_fnuUtd6jv-ApPf_Rb9k8B_LALv5gvJ20rVu99DYCbXxCzjVEsd8fZVHl-Rd9YuZbuQCzXDZVblueSyWpSzw1IpLouyUQtRL2SDSqHkc8VbkTeqkrma6SU9YPM841mZL4oyVYsqFyIryqJZqLKqWM7xqLRJ6Qk1dX4_030_4DKTheDzmVE1mj6-vhHC4gPEWYq42Mz8kpySetj3LOdG96F_hgk6mPjeJ3KpGDf0SVLa7l8I7gcvYs5inQ3eLA8hdD3tn9gysd3rcBjqtHHH6SF7uiSdd__AJjCxjRH3TGynlO6X4t8BAAD__1K1fk8">