diff options
author | Tom Tromey <tom@tromey.com> | 2023-12-10 15:37:34 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2023-12-11 09:04:42 -0700 |
commit | 9394690cb87b5ddc575b333bd0595b07a7a72c60 (patch) | |
tree | 789d8c7831d95c789241dd225cc52f1957c903ac /gdb | |
parent | 9a099bc220fbc97e9ccff6a7e1861e11665e8899 (diff) | |
download | gdb-9394690cb87b5ddc575b333bd0595b07a7a72c60.zip gdb-9394690cb87b5ddc575b333bd0595b07a7a72c60.tar.gz gdb-9394690cb87b5ddc575b333bd0595b07a7a72c60.tar.bz2 |
Use TARGET_SYSROOT_PREFIX in more places
I found some spots using "target:"; I think it's better to use the
define everywhere, so this changes these to use TARGET_SYSROOT_PREFIX.
In some spots, is_target_filename is used rather than an explicit
check.
Approved-By: Andrew Burgess <aburgess@redhat.com>
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/build-id.c | 2 | ||||
-rw-r--r-- | gdb/gdb_bfd.h | 8 | ||||
-rw-r--r-- | gdb/symfile.c | 18 |
3 files changed, 19 insertions, 9 deletions
diff --git a/gdb/build-id.c b/gdb/build-id.c index f68384f..6abf04f 100644 --- a/gdb/build-id.c +++ b/gdb/build-id.c @@ -90,7 +90,7 @@ build_id_to_debug_bfd_1 (const std::string &link, size_t build_id_len, /* lrealpath() is expensive even for the usually non-existent files. */ gdb::unique_xmalloc_ptr<char> filename_holder; const char *filename = nullptr; - if (startswith (link, TARGET_SYSROOT_PREFIX)) + if (is_target_filename (link)) filename = link.c_str (); else if (access (link.c_str (), F_OK) == 0) { diff --git a/gdb/gdb_bfd.h b/gdb/gdb_bfd.h index 604365b..eeb782e 100644 --- a/gdb/gdb_bfd.h +++ b/gdb/gdb_bfd.h @@ -45,6 +45,14 @@ struct registry_accessor<bfd> int is_target_filename (const char *name); +/* An overload for strings. */ + +static inline int +is_target_filename (const std::string &name) +{ + return is_target_filename (name.c_str ()); +} + /* Returns nonzero if the filename associated with ABFD starts with TARGET_SYSROOT_PREFIX, zero otherwise. */ diff --git a/gdb/symfile.c b/gdb/symfile.c index 09aa70b..2bfe36e 100644 --- a/gdb/symfile.c +++ b/gdb/symfile.c @@ -1413,8 +1413,9 @@ find_separate_debug_file (const char *dir, Keep backward compatibility so that DEBUG_FILE_DIRECTORY being "" will cause "/..." lookups. */ - bool target_prefix = startswith (dir, "target:"); - const char *dir_notarget = target_prefix ? dir + strlen ("target:") : dir; + bool target_prefix = is_target_filename (dir); + const char *dir_notarget + = target_prefix ? dir + strlen (TARGET_SYSROOT_PREFIX) : dir; std::vector<gdb::unique_xmalloc_ptr<char>> debugdir_vec = dirnames_to_char_ptr_vec (debug_file_directory.c_str ()); gdb::unique_xmalloc_ptr<char> canon_sysroot @@ -1443,7 +1444,7 @@ find_separate_debug_file (const char *dir, for (const gdb::unique_xmalloc_ptr<char> &debugdir : debugdir_vec) { - debugfile = target_prefix ? "target:" : ""; + debugfile = target_prefix ? TARGET_SYSROOT_PREFIX : ""; debugfile += debugdir; debugfile += "/"; debugfile += drive; @@ -1465,7 +1466,7 @@ find_separate_debug_file (const char *dir, { /* If the file is in the sysroot, try using its base path in the global debugfile directory. */ - debugfile = target_prefix ? "target:" : ""; + debugfile = target_prefix ? TARGET_SYSROOT_PREFIX : ""; debugfile += debugdir; debugfile += "/"; debugfile += base_path; @@ -1481,12 +1482,13 @@ find_separate_debug_file (const char *dir, prefix -- but if that would yield the empty string, we don't bother at all, because that would just give the same result as above. */ - if (gdb_sysroot != "target:") + if (gdb_sysroot != TARGET_SYSROOT_PREFIX) { - debugfile = target_prefix ? "target:" : ""; - if (startswith (gdb_sysroot, "target:")) + debugfile = target_prefix ? TARGET_SYSROOT_PREFIX : ""; + if (is_target_filename (gdb_sysroot)) { - std::string root = gdb_sysroot.substr (strlen ("target:")); + std::string root + = gdb_sysroot.substr (strlen (TARGET_SYSROOT_PREFIX)); gdb_assert (!root.empty ()); debugfile += root; } |