X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fbuild-id.h;h=82af5d5d2bea5d76f553d266352daa9a9cb59c36;hb=57d87c09a33acdce280f4c9ae4f55b885a5cee99;hp=ddd2645743ee4aefd1fffd167326e26358fbdb9a;hpb=ecd75fc8eed3bde86036141228074a20e55dcfc9;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/build-id.h b/gdb/build-id.h index ddd2645743..82af5d5d2b 100644 --- a/gdb/build-id.h +++ b/gdb/build-id.h @@ -1,6 +1,6 @@ /* build-id-related functions. - Copyright (C) 1991-2014 Free Software Foundation, Inc. + Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of GDB. @@ -20,6 +20,13 @@ #ifndef BUILD_ID_H #define BUILD_ID_H +#include "gdb_bfd.h" +#include "gdbsupport/rsp-low.h" + +/* Locate NT_GNU_BUILD_ID from ABFD and return its content. */ + +extern const struct bfd_build_id *build_id_bfd_get (bfd *abfd); + /* Return true if ABFD has NT_GNU_BUILD_ID matching the CHECK value. Otherwise, issue a warning and return false. */ @@ -27,18 +34,34 @@ extern int build_id_verify (bfd *abfd, size_t check_len, const bfd_byte *check); -/* Find and open a BFD given a build-id. If no BFD can be found, - return NULL. The returned reference to the BFD must be released by - the caller. */ +/* Find and open a BFD for a debuginfo file given a build-id. If no BFD + can be found, return NULL. */ + +extern gdb_bfd_ref_ptr build_id_to_debug_bfd (size_t build_id_len, + const bfd_byte *build_id); -extern bfd *build_id_to_debug_bfd (size_t build_id_len, - const bfd_byte *build_id); +/* Find and open a BFD for an executable file given a build-id. If no BFD + can be found, return NULL. The returned reference to the BFD must be + released by the caller. */ + +extern gdb_bfd_ref_ptr build_id_to_exec_bfd (size_t build_id_len, + const bfd_byte *build_id); /* Find the separate debug file for OBJFILE, by using the build-id - associated with OBJFILE's BFD. If successful, returns a malloc'd - file name for the separate debug file. The caller must free this. - Otherwise, returns NULL. */ + associated with OBJFILE's BFD. If successful, returns the file name for the + separate debug file, otherwise, return an empty string. */ + +extern std::string find_separate_debug_file_by_buildid + (struct objfile *objfile); + +/* Return an hex-string representation of BUILD_ID. */ + +static inline std::string +build_id_to_string (const bfd_build_id *build_id) +{ + gdb_assert (build_id != NULL); -extern char *find_separate_debug_file_by_buildid (struct objfile *objfile); + return bin2hex (build_id->data, build_id->size); +} #endif /* BUILD_ID_H */