at master 1.6 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_LIBDW_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_LIBDW_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 43typedef void Dwarf_Addr; 44 45static inline int debuginfo__get_text_offset(struct debuginfo *dbg __maybe_unused, 46 Dwarf_Addr *offs __maybe_unused, 47 bool adjust_offset __maybe_unused) 48{ 49 return -EINVAL; 50} 51 52#endif /* HAVE_LIBDW_SUPPORT */ 53 54#ifdef HAVE_DEBUGINFOD_SUPPORT 55int get_source_from_debuginfod(const char *raw_path, const char *sbuild_id, 56 char **new_path); 57#else /* HAVE_DEBUGINFOD_SUPPORT */ 58static inline int get_source_from_debuginfod(const char *raw_path __maybe_unused, 59 const char *sbuild_id __maybe_unused, 60 char **new_path __maybe_unused) 61{ 62 return -ENOTSUP; 63} 64#endif /* HAVE_DEBUGINFOD_SUPPORT */ 65 66#endif /* _PERF_DEBUGINFO_H */