int main(int argc, char **argv) { Dwarf_Debug dbg = 0; int fd = -1; const char *filepath = "<stdin>"; int res = DW_DLV_ERROR; Dwarf_Error error; Dwarf_Handler errhand = 0; Dwarf_Ptr errarg = 0; if(argc < 2) { fd = 0; /* stdin */ } else { filepath = argv[1]; fd = open(filepath,O_RDONLY); } if(fd < 0) { printf("Failure attempting to open %s\n",filepath); } res = dwarf_init(fd,DW_DLC_READ,errhand,errarg, &dbg,&error); if(res != DW_DLV_OK) { printf("Giving up, cannot do DWARF processing\n"); exit(1); } read_cu_list(dbg); res = dwarf_finish(dbg,&error); if(res != DW_DLV_OK) { printf("dwarf_finish failed!\n"); } close(fd); return 0; }
struct dwarf_compilation_unit * dwarf_get_compilation_unit(char * program) { Dwarf_Debug dbg = 0; int fd = -1; const char *filepath = "<stdin>"; int res = DW_DLV_ERROR; Dwarf_Error error; Dwarf_Handler errhand = 0; Dwarf_Ptr errarg = 0; fd = open(program,O_RDONLY); if(fd < 0) { printf("Failure attempting to open \"%s\"\n",filepath); } res = dwarf_init(fd,DW_DLC_READ,errhand,errarg, &dbg,&error); if(res != DW_DLV_OK) { printf("Giving up, cannot do DWARF processing\n"); exit(1); } struct dwarf_compilation_unit * cu = read_cu_list(dbg); cu->dbg = dbg; return cu; }
int main(int argc, char **argv) { Dwarf_Debug dbg = 0; int fd = -1; const char *filepath = "<stdin>"; int res = DW_DLV_ERROR; Dwarf_Error error; Dwarf_Handler errhand = 0; Dwarf_Ptr errarg = 0; /**/ if(argc < 2) { fd = 0; /* stdin */ } else { int i = 0; for(i = 1; i < (argc-1) ; ++i) { if(strcmp(argv[i],"--names") == 0) { namesoptionon=1; } else { printf("Unknown argument \"%s\" ignored\n",argv[i]); } } filepath = argv[i]; fd = open(filepath,O_RDONLY); } if(argc > 2) { } /**/ if(fd < 0) { printf("Failure attempting to open \"%s\"\n",filepath); } res = dwarf_init(fd,DW_DLC_READ,errhand,errarg, &dbg,&error); if(res != DW_DLV_OK) { printf("Giving up, cannot do DWARF processing\n"); exit(1); } read_cu_list(dbg); res = dwarf_finish(dbg,&error); if(res != DW_DLV_OK) { printf("dwarf_finish failed!\n"); } close(fd); return 0; }