#include #include #include #include #include #include #include #include int main(int argc, char **argv) { if (argc != 2) { fprintf(stderr, "usage: %s \n", argv[0]); exit(1); } if (elf_version(EV_CURRENT) == EV_NONE) { fprintf(stderr, "libelf incompatible"); exit(1); } int fd = open(argv[1], O_RDONLY); if (fd < 0) { perror("open failed"); exit(1); } Elf *elf = elf_begin(fd, ELF_C_READ, NULL); if (elf == NULL) { fprintf(stderr, "elf_begin failed: filename=%s elf_errno=%s", argv[1], elf_errmsg(elf_errno())); exit(1); } Dwarf_Debug dwarf; Dwarf_Error derr; dwarf_elf_init(elf, DW_DLC_READ, NULL, NULL, &dwarf, &derr); }