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

    <tr>
        <th>Summary</th>
        <td>
            LLDB does not see source files from symbols, but GDB does
        </td>
    </tr>

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

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

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

<pre>
    Original StackOverflow [question](https://stackoverflow.com/questions/76720487/lldb-does-not-see-source-files-from-symbols-but-gdb-does)

## How to reproduce:
- Ubuntu 22.04
- lldb v14.0.0 (from apt)
- gdb v12.1
 
1. Creating core dump:
```shell
$ ulimit -c unlimited
$ sleep 10 & killall -SIGNEGV sleep
$ sudo cp /var/lib/apport/coredump/core._usr_bin_sleep.<...> sleep-core-dump
$ sudo chmod 444 sleep-core-dump
````

2. Opening core file with gdb. Gdb will also download symbols via [debuginfod](https://sourceware.org/elfutils/Debuginfod.html)
```console
$ gdb -q /bin/sleep -c sleep-core-dump
Reading symbols from /bin/sleep...
Reading symbols from /home/gordiig/.cache/debuginfod_client/9605b84bc84dab0a28a772dcebed48b0b98ec3a9/debuginfo...
```

3. Downloading additional symbol files from Ubuntu's [ddeb](https://wiki.ubuntu.com/Debug%20Symbol%20Packages)
```shell
$ find-dbgsym-packages --install ./sleep-core-dump
```

4. Loading core file to lldb and adding symbols to target (from debuginfod or ddeb)
```console
$ lldb /bin/sleep -c sleep-core-dump
(lldb) target symbols add /home/gordiig/.cache/debuginfod_client/9605b84bc84dab0a28a772dcebed48b0b98ec3a9/debuginfo 
# Or from ddeb:
(lldb) target symbols add /usr/lib/debug/.build-id/96/05b84bc84dab0a28a772dcebed48b0b98ec3a9.debug
```

## Gdb bt output:
```shell
$ gdb -q /bin/sleep -c sleep-core-dump
Reading symbols from /bin/sleep...
Reading symbols from /home/gordiig/.cache/debuginfod_client/9605b84bc84dab0a28a772dcebed48b0b98ec3a9/debuginfo...
[New LWP 438331]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by 'sleep 10'.
Program terminated with signal SIGSEGV, Segmentation fault.

(gdb) bt
#0  0x00007f4f90fea7fa in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=req@entry=0x7ffccf5a9880, rem=rem@entry=0x7ffccf5a9870) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:78
#1  0x00007f4f90fef6e7 in __GI___nanosleep (req=req@entry=0x7ffccf5a9880, rem=rem@entry=0x7ffccf5a9870) at ../sysdeps/unix/sysv/linux/nanosleep.c:25
#2  0x000055a5b5eb9a00 in rpl_nanosleep (remaining_delay=0x7ffccf5a9870, requested_delay=0x7ffccf5a9870) at lib/nanosleep.c:85
#3  xnanosleep (seconds=<optimized out>) at lib/xnanosleep.c:69
#4  main (argc=<optimized out>, argv=<optimized out>) at src/sleep.c:142
```

## LLDB bt output with debuginfod symbols:
```shell
$ lldb /bin/sleep -c sleep-core-dump
(lldb) target create "/bin/sleep" --core "sleep-core-dump"
Core file '/home/gordiig/work/playing-with-dumps/src/dumps-generator/sleep-core-dump' (x86_64) was loaded.

(lldb) target symbols add /home/gordiig/.cache/debuginfod_client/9605b84bc84dab0a28a772dcebed48b0b98ec3a9/debuginfo 
warning: (x86_64) /bin/sleep unsupported DW_FORM values: 0x1f20 0x1f21
warning: failed to set breakpoint site at 0x55a5b5eb9b90 for breakpoint -2.1: error: elf-core does not support enabling breakpoints
symbol file '/home/gordiig/.cache/debuginfod_client/9605b84bc84dab0a28a772dcebed48b0b98ec3a9/debuginfo' has been added to '/bin/sleep'

(lldb) bt
* thread #1, name = 'sleep', stop reason = signal SIGSEGV
  * frame #0: 0x00007f4f90fea7fa libc.so.6`clock_nanosleep + 90
    frame #1: 0x00007f4f90fef6e7 libc.so.6`__nanosleep + 23
    frame #2: 0x000055a5b5eb9a00 sleep`main + 1024
    frame #3: 0x00007f4f90f2ed90 libc.so.6`___lldb_unnamed_symbol3139 + 128
    frame #4: 0x00007f4f90f2ee40 libc.so.6`__libc_start_main + 128
    frame #5: 0x000055a5b5eb9bb5 sleep`_start + 37

(lldb) f 2
frame #2: 0x000055a5b5eb9a00 sleep`main + 1024
sleep`main:
-> 0x55a5b5eb9a00 <+1024>: testl  %eax, %eax
    0x55a5b5eb9a02 <+1026>: jne 0x29d6                    ; <+982>
    0x55a5b5eb9a04 <+1028>: movq 0x58(%rsp), %rax
    0x55a5b5eb9a09 <+1033>: subq   %fs:0x28, %rax
```

## LLDB bt output with ddeb symbols:
```shell
$ lldb /bin/sleep -c sleep-core-dump 
(lldb) target create "/bin/sleep" --core "sleep-core-dump"
warning: (x86_64) /bin/sleep unsupported DW_FORM values: 0x1f20 0x1f21
Core file '/home/gordiig/work/playing-with-dumps/src/dumps-generator/sleep-core-dump' (x86_64) was loaded.

(lldb) target symbols add /usr/lib/debug/.build-id/96/05b84bc84dab0a28a772dcebed48b0b98ec3a9.debug
warning: failed to set breakpoint site at 0x55a5b5eb9b90 for breakpoint -2.1: error: elf-core does not support enabling breakpoints
symbol file '/usr/lib/debug/.build-id/96/05b84bc84dab0a28a772dcebed48b0b98ec3a9.debug' has been added to '/bin/sleep'

(lldb) bt
* thread #1, name = 'sleep', stop reason = signal SIGSEGV
  * frame #0: 0x00007f4f90fea7fa libc.so.6`__GI___clock_nanosleep(clock_id=0, flags=0, req=0x00007ffccf5a9880, rem=0x00007ffccf5a9870) at clock_nanosleep.c:78:7
    frame #1: 0x00007f4f90fef6e7 libc.so.6`__GI___nanosleep(req=<unavailable>, rem=<unavailable>) at nanosleep.c:25:13
    frame #2: 0x000055a5b5eb9a00 sleep`main + 1024
    frame #3: 0x00007f4f90f2ed90 libc.so.6`__libc_start_call_main(main=(sleep`main), argc=2, argv=0x00007ffccf5a99e8) at libc_start_call_main.h:58:16
    frame #4: 0x00007f4f90f2ee40 libc.so.6`__libc_start_main_impl(main=(sleep`main), argc=2, argv=0x00007ffccf5a99e8, init=(_rtld_global), fini=<unavailable>, rtld_fini=<unavailable>, stack_end=0x00007ffccf5a99d8) at libc-start.c:392:3
    frame #5: 0x000055a5b5eb9bb5 sleep`_start + 37

(lldb) f 2
frame #2: 0x000055a5b5eb9a00 sleep`main + 1024
sleep`main:
->  0x55a5b5eb9a00 <+1024>: testl  %eax, %eax
 0x55a5b5eb9a02 <+1026>: jne    0x29d6                    ; <+982>
 0x55a5b5eb9a04 <+1028>: movq   0x58(%rsp), %rax
    0x55a5b5eb9a09 <+1033>: subq   %fs:0x28, %rax
```

## What may be a bug
GDB sees source file names for frames, so if those files will be placed by those paths, gdb will show me non-asm backtrace.
But LLDB doesn't show me those paths. With ddebs situation is a bit better, but still no path for sleep's main file, which is the most important.



</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWdty4zbSfhr4possCqRE8sIXtjXyn6r5M6nMJnOpAgmQQgwCGgC07H36rQYp6mApM9lMNgeXS6KIxoev0Y0-kMw52Wohbsn8nsyXN6z3G2NvW2O5lO1NZfjr7QcrW6mZgo-e1U8fnoVtlNkBmd9_7oXz0mgyXxJabLzfOpLeEboidOVQ2IzCcW06Qld7eUfoKl_kNMmKnNCVUryKuBEu0sZHTojImd7WImqkEi5qrOki99pVRrmo6n3UjuKEliRZkuRu_KQpoSn8n9mBN2DF1hre1wIZhfEIfqp67XugNE6y_T1cHJ5nWZzECRBa4GrAtn4Cj6ANEjSeDTdg-JrF8GAF81K3UBsrgPfddlqMLJLh322EUnuCGfRKdtJDVEOvw6Xgh0GnhNjCDHks4EkqxZSC6ON3j9-_e_x5GD0S7rmBeguErp6ZxW2UFaErtt0a6wldIadAabiM172z60rqdcCJSfoQxzFJ3w24EcpEQf5shU1nOGRZdkVuryf-HxmDxvBhK_S0OWhK2Em_wd2M4ZFXsJNKAVPOADc7rQzjMFoZniVD_-Ki6lupG8Mvelhwkh2zIja2JXQlVNN7qdC7ltPMeOM7dfCUPdfaaGeUOCiLRo4-425WUiN6sEVUX1b7R8E46rYnHLzmdC7u7q_KbkwnCF2NZ43QVVyzeoO3DnqvayWFRnOWi2ReFVlVFxlnVcJowfKc8lpUgmdFlVRlIeqUlcfTJwoXTZTGsBw3HukxziUeTqZGpsFmI93h5BCau2AXLqpLFtnJJxn3QXQ88cEOhM5p8jFghssfWP3E2uPze-WwNFLziFete-2i7TgJokhq5_FkxPutvu6UR-pmMbwfVT14pDdDAGCahw04MpM34JlthZ-iwsEsYCyETfiyXwX4r_QqQgsUJ7TcL70nwzj_37gMTLEUPtjB9kHRKa59iWLvDrGID9ZfxVUvFY8kD6QIXX0dr3iYf92kY8THYFJ5ML3f9v6LEfiffdDn99-LHbz_9ANkaZGmMzym-5F_baxgfHDjFon2Dj-VrHwYWfMKhGaVEnya9lMQ2RjnT-WUrCyzr0Aoncz9UizWiyxSUvcvUav7YWCaEzsTzwilI9UHPIQ75qAVWljmBYcK8fJ9FiQ0H0V_sKa1rAMvbCd1EA2pBGsXrEu-e_z47vFnQh_go2g7oT3DQAYN65WPTx2maAfnrfzkQglA8pIkSZI3WVMmjWB5w0BqWK8fv1uv17Uy9dNaM20GZoQWwy3JSbqcLrNEaG9fSbpMkEmjWOtIuhy-zwat-EzSJX4eDbzkTVPXzZyVRTFKdUGquyKVJ6gJ8xCHSPjquNhi8uu1fBluPAcT6B5_nqkR1yS9y4tpF2bnu9AsRH60Cyf6_xn8T5nT-cSc7pnP52xezUVVsiRB5narzml3TGJNsuZCsUt0gmmwShX8qkygPHj8KafiwCkFeDlZ2onaaI4OQdIHs_Wyk_8WHGMWSd-dYL6cgi7KCTQDQP4Ix2xbX8N6AGbb519dydl6il64yCyjXw6z798v7w9xdjiBRylxjHpfjL-_LyHWWHKLMewcQRBKIQrTcewcjNKjmBMSP6H5pci8M_aJ0NVWsVep2wh1DAjolsOmhV_RGLOMvVCC0BwtNARDZI4xDosswc9j0V8k2e-YxUNB0rtT4mdG6rXrQ3MhOCw_rVcffvx_eGaqF2hzSF5mDU2Gr9kb3IZJJTjWVE54qKxgT1sjtQcnvUCPTF6m01uVCTTGHktF2HyldyCsNTZcqGYwNvaBoI2HkduQwDBnHaa7gc5RVXvN_N98h9EZNsxBJYRGuw57MKx-4r35Fdc45Kk7GDIpYLDGU65ZJ4CkyylnBtgHcN5swQrmjA7DZ1ly6GEBARsbIGiaDBZ8kwSVrGpM2wusbN-kwXsokz0cHMBmb8FCLjkGW58B0fQCED0AnYT2QdlFMgbDe5glNLswP31DhApeJmdE1rjV617jdvL14CTpLC0HZFpcAM4uAIvsHBh_rZ1n1q8PTC_izS8oWlXzSdEBJQCk1xylgTHG_Z7tOx46PDch6bvj84kYJH0g9D5MTN_hOl44r9Cr5oK9oBeOV5OyJwD0ALAYAX7RApIXWvIFXPgj6f04pSwozriMmx1wixG3M8-fUaggtCB0bt0Wm7aBoL1KsJyA0IsCkOurzxA0bDDgJS-Idwrzm7MnF9U3zpvwxyTOPypF_K0S8h_U2v7l0-S31_ufkxUv94inLeJJP3jU_-2hL3VN52NT43GljUvv8v86FZ_2d1N7R9KHXrNnJhWrlBhbi4HdhaFA7k2Plt7N_rzMfpSAa6ZUyMKEFkNyW2JTdpzuhqwwNlb0qI06M0UpikO_9gY_3pD0bo72mC2-VeWwlt1WfSPiDyC19APK2nrF160yFVMjSiO1vGp6lP41gfDKZy00v7A2P960KOgWfCQt0Rcu-cjfoCj6nVXR15REoTD5jVXRV5VE8Fcoij5tmIeOvUIlgMGUER-X9-CEcDC84hlyEQZ2FzJeMKYLHmdANuA3xonxbUV4qVQJ2CpWD08Uh9Et85swpd2_eXIbs4NOgDY6Yq6DitVP3rJajEXBfe-Hog1zpyY099OUI8gYPu0rOYdZuh8ePUqH-kgPlfBeWFy46j04jytrE-YGXfYpyg2PdlAJFN5tZL1BFL8R0BnnQXaYt5k-e6AZPm_4bcrLtGQ34na2KMoimy0Wyc3mli6aYpHU5Tyf81kxr2d5MmPZjOf5os64aG7kLU1omuQ0SQqap2VcikwUfC7yphasEnOSJaJjUsVKPXexse2NdK4Xt4u0zNMbxSqhXHh5TKkWOwiDWDXOlzf2FudEVR-efyrpvDugeOmVuJ32d6hNhDi2-PgAfV8fj1v4OM646a26PX391Eq_6avxzROuNH5FW2t-ETX28IEf1o6B_38CAAD__2DOUD4">