I read the description of both but I don't yet understand the difference. Can anyone help me understand the differences?
set solib-absolute-prefix -
Specifies the local directory that contains copies of target libraries in the
corresponding subdirectories. This option is useful when debugging with gdbserver.
.
set solib-search-path command -
Specifies directories where GDB will search for shared libraries with symbols. This option
is useful when debugging with gdbserver.
Thanks.
Specifies directories where GDB will search for shared libraries with symbols. This option is useful when debugging with gdbserver.
If you want to use ' solib-search-path ' instead of ' sysroot ', be sure to set ' sysroot ' to a nonexistent directory to prevent GDB from finding your host's libraries. ' sysroot ' is preferred; setting it to a nonexistent directory may interfere with automatic loading of shared library symbols.
The wording is quite unclear :-(
Assume that your target loaded /usr/lib/libfoo.so
, and that on the host (where GDB is running), you have a copy of the entire target tree in /tmp/host
. That is, a copy of target's /usr/lib/libfoo.so
is found on host in /tmp/host/usr/lib/libfoo.so
.
Then, the following commands are almost equivalent:
set solib-absolute-prefix /tmp/host
set solib-search-path /tmp/host/usr/lib
Now consider what happens if you also have /usr/local/lib/libbar.so
on target, and a copy of it in /tmp/host/usr/local/lib/libbar.so
.
The solib-absolute-prefix
as set above is still good to locate libbar.so
, but solib-search-path
would have to be modified like so:
set solib-search-path /tmp/host/usr/lib:/tmp/host/usr/local/lib
To summarize, if you have entire target tree under a single host $ROOT
, then just set solib-absolute-prefix
to $ROOT
and you should be good.
But if you have to "assemble" target paths from multiple disjoint trees, then solib-search-path
with multiple paths will allow GDB to still find correct libraries.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With