<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/58926>58926</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
LLDB: feature suggestion: add rpath entries to executable search paths
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
russelltg
</td>
</tr>
</table>
<pre>
When remote debugging with LLDB, it insists on loading the symbols from the target machine when they are available on the host machine in an easy-to-determine location.
Demo:
```bash
$ mkdir bin lib
$ echo "int get_number() { return 2; }" > lib.c
$ clang lib.c -shared -o lib/libshared.so
$ echo "int get_number();\nint main() { return get_number(); }" > main.c
$ clang main.c -o bin/main -L lib -l shared -Wl,-rpath,"\$ORIGIN/../lib"
$ rsync -r bin lib target:~/test
$ ssh -f target 'cd ~/test/bin && lldb-server platform --listen "*:1234" --server'
$ lldb
> platform select remote-linux
> platform connect connect://target:1234
> file bin/main
> b main
> process launch
> image list
....
[ 4] 207DCA7C-91F2-15DA-4470-4000F5EF9247-5C21C5A0 0x00007ffff7fbd000 /home/russell/.lldb/module_cache/remote-linux/.cache/207DCA7C-91F2-15DA-4470-4000F5EF9247-5C21C5A0/libshared.so
```
It had to sync that file across! This is obviously fine for this toy example, but for larger examples this is quite rough.
This can be worked around with a `settings append target.exec-search-paths lib` before the launch, but it seems like this should not be necessary as the RPATH is encoded right in the file and could automatically be added to the search path.
Is there interest in this feature? I'm happy to work on it if so. I think the relevant code is towards the end of `TargetList::CreateTargetInternal`, but am not entirely sure.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyVVU1v4zgM_TXOhbDhyPloDjmkSb0boNhdDArMcSDbjK2tLGUluW3-_ZKy02QwPewGRhKTFPn0RD5Vtrlsv3dowGFvA0KD1dC2yrTwrkIHz8-Hx0TsQQVQxisfPFgD2sqGQ0KH4C99ZbWHk7N9NATpWgzQy7pTBuGdk5P9AtIhyDeptKw0chqO7qy_xSoD0gBKf0mDTRsM6Hq2a1vLoKzJkvyQ5Lvx-0CAk2J3b0pW-fhU0neTSSygf22Ug4qya1XdzFh3FhIhlAlAiH-Yoa_QJeIhERtI1o9ESRicAZEUj_R-oFBIiidOktW3NLWWREU0Quo72mUDqY2lREnfoynz9r9VpmLJcm_Y1UtlfoXzxYJ7dLzoV3ijlXFVnLPkd0ifGSWkGq6wv2s67NSdZejoD6UkKJTkz2_H345_0LIsG_fEns8Kzl8Mpf5keOoAPpv1E8UH9OEW7X0H6enaJYlY1w3cxYmSsyRiRQ9o3VSpR_eGDs5ahpN1PaSppj5EDhKJ2FGZuSgWvP10iqWkt3qcA6ZXouczjUeNdZjanlKa4eOLqNoaw2HTL-9JlIz1usVY-3PdSVFn3xi-OSr4-f3sbI3eg5aDqbubXfWypX5XV8Yy-kze5SPAIlkeQOTrw3633qebeSnS-fKwSxeLdZ4u8jwvl0_lRizW6XIv5vvlLof8g8z5-kSf9alq6D8RV3a2R_pxgyceNJ8s88SwbTNo_FHTRMaAe3oo6mr_Xxi-noPrrN4P8DFAJxsIFmJPhU6GkVNZO-t9Iubw0ikP9NjqTdnB6wsFkETQaVE42YO9AH7I_qyRhasaQvRpPjB39fgxlp5_BkWq5-zQdhPRsUBNOlSReFn3SnMhyW-aURElEGaPIZAAepDnM5JnbIcMP7CmHpSu7lKeIR9VYJVTKsKAUfCmE5-gka56xJ4DX3EE5Ts76AaMDYyAuo76RDqSTx_Xf_tr9_I7I0dT24bAOdV2rM7RO5JFiOqYRA7B9iSdtdREFKWTDS8hfqN0R6TASDP46RhiKceCTBJMYzmmp6InlCRCmBQlHGnMejqu8_nCCZkqFnW-KU7gbQZHXmJeYylH0_YmDQ9SgxCP6V26ZtwSM2hPzOtL5PGZ27_gyd47qoej9chYjNTcMhN7so80oQmKClzAE7QMZridr1YP82K9FGLWbItmU2zkLKigcRsvtGJ33QgtaVvaIF0ubCV6IKof53SK-8QCn-oQ4qV1x5ifDU5vuxDO_lMVWmqQge4B23PL67frT0rj_jfLhyiV9wNSI5fLh41YzbrtRsjqQeb1cjFfFlJUlShWm6JGuRI0srQBui5R-y3NPw3_TG1FLsScPnlR0N-sWJC_qkX-sMGc1DRZ5EhaozMunFnXztw2YqB73ZOTtcXfnNJ71RrEa37qmM667SQMoZ1FwNuI9l-UGJQ4">