lldb was failing to locate the split debug symbols for libc. The previous search order was:
- the directory containing the original library
- the current directory
- /usr/lib/debug
This was failing to locate the debug symbols for libc (at least on my machine), because the
.gnu_debuglink for libc (libc.so.6) was "libc-2.19.so". However, libc.so.6 itself is a symlink to
libc-2.19.so, located in the same directory. This meant that under the default search path lldb
would locate the same file, which obviously provides no new information. Moving the module
directory to the last place in the search path allows lldb to correctly locate the debug version
of libc under /usr/lib/debug and indeed makes additional information visible in lldb output.
If the user has a newer version of debug symbols in the library directory than those in
/usr/lib/debug (perhaps because he is working on the library), then those should get picked up
anyway, because the newer library should have a different UUID.
This is needed because you now have debug data for libc?