at v6.8-rc2 64 lines 1.5 kB view raw
1/* SPDX-License-Identifier: GPL-2.0-or-later */ 2#ifndef _PERF_DEBUGINFO_H 3#define _PERF_DEBUGINFO_H 4 5#include <errno.h> 6#include <linux/compiler.h> 7 8#ifdef HAVE_DWARF_SUPPORT 9 10#include "dwarf-aux.h" 11 12/* debug information structure */ 13struct debuginfo { 14 Dwarf *dbg; 15 Dwfl_Module *mod; 16 Dwfl *dwfl; 17 Dwarf_Addr bias; 18 const unsigned char *build_id; 19}; 20 21/* This also tries to open distro debuginfo */ 22struct debuginfo *debuginfo__new(const char *path); 23void debuginfo__delete(struct debuginfo *dbg); 24 25int debuginfo__get_text_offset(struct debuginfo *dbg, Dwarf_Addr *offs, 26 bool adjust_offset); 27 28#else /* HAVE_DWARF_SUPPORT */ 29 30/* dummy debug information structure */ 31struct debuginfo { 32}; 33 34static inline struct debuginfo *debuginfo__new(const char *path __maybe_unused) 35{ 36 return NULL; 37} 38 39static inline void debuginfo__delete(struct debuginfo *dbg __maybe_unused) 40{ 41} 42 43static inline int debuginfo__get_text_offset(struct debuginfo *dbg __maybe_unused, 44 Dwarf_Addr *offs __maybe_unused, 45 bool adjust_offset __maybe_unused) 46{ 47 return -EINVAL; 48} 49 50#endif /* HAVE_DWARF_SUPPORT */ 51 52#ifdef HAVE_DEBUGINFOD_SUPPORT 53int get_source_from_debuginfod(const char *raw_path, const char *sbuild_id, 54 char **new_path); 55#else /* HAVE_DEBUGINFOD_SUPPORT */ 56static inline int get_source_from_debuginfod(const char *raw_path __maybe_unused, 57 const char *sbuild_id __maybe_unused, 58 char **new_path __maybe_unused) 59{ 60 return -ENOTSUP; 61} 62#endif /* HAVE_DEBUGINFOD_SUPPORT */ 63 64#endif /* _PERF_DEBUGINFO_H */