X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fbuild-id.h;h=82af5d5d2bea5d76f553d266352daa9a9cb59c36;hb=aa49fc22c13a685452a2073e252d8b34ecbcc012;hp=137d9e18c5132426a56abaadc4b5c544717091ac;hpb=192b62ce0b4bb5c61188f570e127a26d2c32f716;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/build-id.h b/gdb/build-id.h index 137d9e18c5..82af5d5d2b 100644 --- a/gdb/build-id.h +++ b/gdb/build-id.h @@ -1,6 +1,6 @@ /* build-id-related functions. - Copyright (C) 1991-2017 Free Software Foundation, Inc. + Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of GDB. @@ -21,6 +21,7 @@ #define BUILD_ID_H #include "gdb_bfd.h" +#include "gdbsupport/rsp-low.h" /* Locate NT_GNU_BUILD_ID from ABFD and return its content. */ @@ -33,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); +/* 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 */