Remove target: prefix from gdb_sysroot in find_separate_debug_file
authorTom Tromey <tromey@adacore.com>
Wed, 21 Dec 2022 20:57:45 +0000 (13:57 -0700)
committerTom Tromey <tromey@adacore.com>
Mon, 2 Jan 2023 13:48:31 +0000 (06:48 -0700)
commitdacf80765d51be840d2efc20bc058643d88ec49f
treea9354ce821a43ac0293d2a7b5e5e5200620ab635
parentb9877acc81ade609c503bbcff064e09d3e290a84
Remove target: prefix from gdb_sysroot in find_separate_debug_file

I noticed that, when using gdbserver, gdb might print:

Reading /usr/lib/debug/lib64//libcap.so.2.48-2.48-4.fc36.x86_64.debug from remote target...
Reading target:/usr/lib/debug/lib64//libcap.so.2.48-2.48-4.fc36.x86_64.debug from remote target...

The second line has the "target:" prefix, but from the code it's clear
that this string is being passed verbatim to gdbserver -- which seems
wrong.

I filed PR remote/29929 for this.

The problem here is that find_separate_debug_file uses gdb_sysroot
without checking to see if it starts with the "target:" prefix.  This
patch changes this code to be a little more careful.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29929
gdb/symfile.c