gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / gdb / build-id.h
index 137d9e18c5132426a56abaadc4b5c544717091ac..82af5d5d2bea5d76f553d266352daa9a9cb59c36 100644 (file)
@@ -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 */
This page took 0.024556 seconds and 4 git commands to generate.