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

    <tr>
        <th>Summary</th>
        <td>
            lldb cannot step into a function if it existed in another shared library
        </td>
    </tr>

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

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

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

<pre>
    OS: Ubuntu (Linux 5.13.0-30-generic)
llvm & lldb version: 1:15.0-55~20220203220519.7 (installed via apt)
---

`foo.cpp`
```c++
int bar(int);

int foo(int v) {
    return bar(v) + bar(v);
}
```
`main.cpp`
```c++
int foo(int);

int bar(int v) {
    return v + 1;
}

int main() {
    auto l = foo(2);
    auto r = foo(3);
    return 0;
}
```

Compile, link and debug
```bash
clang++ -g -fPIC -shared foo.cpp -o libfoo.so
clang++ -g -Wl,-rpath,. -L. -lfoo main.cpp -fuse-ld=lld
lldb ./a.out
```

In `main()` at `a.out`, stepping into (with `s` command) `foo()` does not work. It just steps over this funcion call (like a `n` command).
```
    frame #0: 0x000055555555578f a.out`main at main.cpp:8:14
   5    }
   6    
   7    int main() {
-> 8             auto l = foo(2);
   9        auto r = foo(3);
   10       return 0;
   11   }
```

The same issue appears in `foo(int)` at `libfoo.so`.
```
    frame #0: 0x00007ffff7fbc11b libfoo.so`foo(v=3) at foo.cpp:4:16
   1    int bar(int);
   2    
   3    int foo(int v) {
-> 4             return bar(v) + bar(v);
   5    }
```

P.S. lldb 14 also has this problem. lldb 13 has not such problem, (but it crashes when I set some specific breakpoints, so I have to use lldb 15)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyVVVuPmzwQ_TXkZQSyuW4eeNhLV1qpUiu1n75nAya469jUNtltf33HhpA0zfaCCMGe8fEZz5mh0d23-sOnKLuF_5pJuQmi9Oa9UNMrFAnNEhJnJN5xxY1oo3QbkYeI3Ep52KNfCVJ2DRy4sUIrD0HxQQtcVBRR9S4lKd4kw2dBt0nloYWyjknJOzgIBmx0K2gcx_PL8ixJr3XSjiO-rVPzjUzu_B1mhXLQMBOwA1p2d47jzQg0m-GADhBViwfgZbibjFoQZnN6dzY8wVUPFzTW4Z4J9ZdMVyrXma6BvM30EAjSK7xWFM8HYX5BYJPTICHKHhYe6TmL1cOceWSXHgsL8udzCc97vR-F5FF6D1KoZ2Cqg4430-5iTcPsME-1kqndfGwQ7yDuPz7dQ2wHZlA0iyQgxjhE40dWX1_2v8Q9YzMyN-BLAvF7_ElcAcdsIfRkeSw7jBaFfJQ2KjqJ0keW6Mn9JrAnBUvm55PGATDn5-aV6I0xW8fHUagdYFq01_-LcIN3st6_1fs9HkjIU5D7CarT3ILSDl60eU7gycGXybqAZ0FjyYEbhIV-Ui3WHrRYUx5eimcOzKOpnzdIrobiE9obtue4NiO-gskrwas4XtVND8d4fKw-xFXt2e2Nr_d8xSrwF5HtqggclsvUcVzN47dUGkfZO7iZff5KsdsL399pl5LV9xcVezP9mf3VtH8eOFh_YMLaCY96HDkzFtN7yuBS3KseTkItyb-loerxqvqmpbSBc5h5owOG6mP0-xx7ZXab-5yUp6hOB361S6I5vchRdlryVucMecrh8jz_3EWvqOTqOX9MPiXz54XmwKTVMDA7a340upF8fzRnweJLxU7tcLT64sO9m8mBcNAabC9YUC8DV_AElqOzxuO2I29FL1poDGfPo8ZAbShbjV4DO3BASWGTWLYqMJJNV2fdNtuyjRNO8jpYWqYCAazOudJZqEznS1P0ngF_FWjtvFAYug5YwEtLw7waZr5tJiPrwbnRYv6w_-C9w14xNQkWMQ78N3f5izHGL7zFND4GFSLlxyJPC7IZataUVdWWfdWkHcuLvKcoo6qgXUd4kZV0I1nDpa2jAjtlqvjLLGR8j4qHjajDNzsjFc3xVya86tKcpilNy6LjpIxywrFuZeJ5JNrsNqYOlLCjWzRKjNKejMxasVOch-0QH0t00Kb-_pVut9Um7FwH5j8AGoZTmA">