drgn/libdrgn/linux_kernel.h
Omar Sandoval 6af6159cfc libdrgn: support loading only load main debug info
If we only want debugging information for vmlinux and not kernel
modules, it'd be nice to only load the former. This adds a load_main
parameter to drgn_program_load_debug_info() which specifies just that.
For now, it's only implemented for the Linux kernel. While we're here,
let's make the paths parameter optional for the Python bindings.
2019-11-22 16:38:52 -08:00

43 lines
1.2 KiB
C

// Copyright 2018-2019 - Omar Sandoval
// SPDX-License-Identifier: GPL-3.0+
#ifndef DRGN_LINUX_KERNEL_H
#define DRGN_LINUX_KERNEL_H
#include <elfutils/libdwfl.h>
#include "drgn.h"
struct drgn_dwarf_index;
struct drgn_memory_reader;
struct vmcoreinfo;
struct drgn_error *parse_vmcoreinfo(const char *desc, size_t descsz,
struct vmcoreinfo *ret);
struct drgn_error *read_vmcoreinfo_fallback(struct drgn_memory_reader *reader,
bool have_non_zero_phys_addr,
struct vmcoreinfo *ret);
struct drgn_error *
linux_kernel_report_debug_info(struct drgn_program *prog,
struct drgn_dwarf_index *dindex,
const char **paths, size_t n,
bool report_default, bool report_main);
#define KDUMP_SIGNATURE "KDUMP "
#define KDUMP_SIG_LEN (sizeof(KDUMP_SIGNATURE) - 1)
#ifdef WITH_LIBKDUMPFILE
struct drgn_error *drgn_program_set_kdump(struct drgn_program *prog);
#else
static inline struct drgn_error *
drgn_program_set_kdump(struct drgn_program *prog)
{
return drgn_error_create(DRGN_ERROR_INVALID_ARGUMENT,
"drgn was built without libkdumpfile support");
}
#endif
#endif /* DRGN_LINUX_KERNEL_H */