#0 __strcmp_ssse3 () at ../sysdeps/x86_64/multiarch/../strcmp.S:209 [Error: ../sysdeps/x86_64/multiarch/../strcmp.S was not found in source tree] #1 0x0000000000409775 in merge (cmp=cmp@entry=0x43ed80 , a=0x239f680, b=0x239f6e0) at list_sort.c:47 42: { 43: struct td_list_head head, *tail = &head; 44: 45: while (a && b) { 46: /* if equal, take 'a' -- important for sort stability */ 47: if ((*cmp)(a, b) <= 0) { 48: tail->next = a; 49: a = a->next; 50: } else { 51: tail->next = b; 52: b = b->next; #2 0x0000000000409833 in td_list_sort (head=head@entry=0x7fff6dc6c410, cmp=0x43ed80 ) at list_sort.c:142 137: struct td_list_head *cur = list; 138: list = list->next; 139: cur->next = NULL; 140: 141: for (lev = 0; part[lev]; lev++) { 142: cur = merge(cmp, part[lev], cur); 143: part[lev] = NULL; 144: } 145: if (lev > max_lev) { 146: if (lev >= MAX_LIST_LENGTH_BITS) 147: { #3 0x0000000000441878 in ntfs_dir (disk_car=, partition=, dir_data=, cluster=5, dir_list=0x7fff6dc6c410) at ntfs_dir.c:325 320: } 321: else 322: log_critical("ntfs_readdir BUG not MFT_RECORD_IS_DIRECTORY\n"); 323: /* Finished with the inode; release it. */ 324: ntfs_inode_close(inode); 325: td_list_sort(&dir_list->list, filesort); 326: return 0; 327: } 328: 329: enum { bufsize = 4096 }; 330: #4 0x0000000000421bc9 in dir_partition_aux (disk=disk@entry=0x2370e00, partition=partition@entry=0x2374870, dir_data=dir_data@entry=0x7fff6dc6c510, inode=5, depth=depth@entry=0, current_cmd=current_cmd@entry=0x7fff6dc6ccf0) at dirn.c:545 540: .list = TD_LIST_HEAD_INIT(dir_list.list), 541: .name = NULL 542: }; 543: /* Not perfect for FAT32 root cluster */ 544: inode_known[depth]=inode; 545: dir_data->get_dir(disk, partition, dir_data, inode, &dir_list); 546: dir_aff_log(dir_data, &dir_list); 547: if(*current_cmd!=NULL) 548: { 549: /* TODO: handle copy_files */ 550: dir_data->current_directory[current_directory_namelength]='\0'; #5 0x0000000000423180 in dir_partition_aff (disk=disk@entry=0x2370e00, partition=partition@entry=0x2374870, dir_data=dir_data@entry=0x7fff6dc6c510, inode=, current_cmd=current_cmd@entry=0x7fff6dc6ccf0) at dirn.c:582 577: 578: int dir_partition_aff(disk_t *disk, const partition_t *partition, dir_data_t *dir_data, const unsigned long int inode, char **current_cmd) 579: { 580: if(dir_data==NULL) 581: return -1; 582: return dir_partition_aux(disk, partition, dir_data, inode, 0, current_cmd); 583: } 584: 585: /* 586: Returns 587: -2: no file copied #6 0x000000000042358b in dir_partition (disk=disk@entry=0x2370e00, partition=partition@entry=0x2374870, verbose=verbose@entry=1, current_cmd=current_cmd@entry=0x7fff6dc6ccf0) at dirpart.c:179 174: if(recursive>0) 175: dir_whole_partition_log(disk,partition,&dir_data,dir_data.current_inode); 176: else 177: { 178: #ifdef HAVE_NCURSES 179: dir_partition_aff(disk, partition, &dir_data, dir_data.current_inode, current_cmd); 180: #else 181: { 182: file_info_t dir_list = { 183: .list = TD_LIST_HEAD_INIT(dir_list.list), 184: .name = NULL #7 0x00000000004319b7 in ask_structure_ncurses (current_cmd=0x7fff6dc6ccf0, verbose=1, list_part=0x2374500, disk_car=0x2370e00) at intrface.c:367 362: case 'P': 363: if(list_part!=NULL) 364: { 365: const partition_t *partition=pos->part; 366: if(partition->sb_offset==0 || partition->sb_size==0) 367: dir_partition(disk_car,partition,verbose, current_cmd); 368: else 369: { 370: io_redir_add_redir(disk_car, 371: partition->part_offset+partition->sborg_offset, 372: partition->sb_size, #8 ask_structure (disk_car=disk_car@entry=0x2370e00, list_part=list_part@entry=0x2374500, verbose=verbose@entry=1, current_cmd=current_cmd@entry=0x7fff6dc6ccf0) at intrface.c:426 421: list_part_t *ask_structure(disk_t *disk_car,list_part_t *list_part, const int verbose, char **current_cmd) 422: { 423: if(*current_cmd!=NULL) 424: return ask_structure_cli(disk_car, list_part, verbose, current_cmd); 425: #ifdef HAVE_NCURSES 426: return ask_structure_ncurses(disk_car, list_part, verbose, current_cmd); 427: #else 428: return list_part; 429: #endif 430: } #9 0x000000000042fd34 in interface_recovery (disk_car=disk_car@entry=0x2370e00, list_part_org=list_part_org@entry=0x2373f30, verbose=verbose@entry=1, dump_ind=0, align=1, ask_part_order=ask_part_order@entry=0, expert=0, current_cmd=current_cmd@entry=0x7fff6dc6ccf0) at godmode.c:1330 1325: /* Write found partitions in the log file */ 1326: log_info("\nResults\n"); 1327: for(element=list_part;element!=NULL;element=element->next) 1328: log_partition(disk_car,element->part); 1329: } 1330: list_part=ask_structure(disk_car,list_part,verbose,current_cmd); 1331: if(disk_car->arch->test_structure(list_part)==0) 1332: { 1333: int do_again=0; 1334: int max_ext=0; 1335: int can_ask_minmax_ext=0; #10 0x000000000043b434 in menu_disk_ncurses (current_cmd=0x7fff6dc6ccf0, saveheader=0, dump_ind=0, verbose=1, disk=0x2370e00) at tdiskop.c:160 155: case 'a': 156: case 'A': 157: { 158: list_part_t *list_part; 159: list_part=interface_analyse(disk, verbose, saveheader, current_cmd); 160: interface_recovery(disk, list_part, verbose, dump_ind, align, ask_part_order, expert, current_cmd); 161: part_free_list(list_part); 162: } 163: break; 164: case 'd': 165: case 'D': #11 menu_disk (disk_car=disk_car@entry=0x2370e00, verbose=verbose@entry=1, dump_ind=dump_ind@entry=0, saveheader=saveheader@entry=0, current_cmd=current_cmd@entry=0x7fff6dc6ccf0) at tdiskop.c:203 198: int menu_disk(disk_t *disk_car, const int verbose,int dump_ind, const int saveheader, char **current_cmd) 199: { 200: if(*current_cmd!=NULL) 201: return menu_disk_cli(disk_car, verbose, dump_ind, saveheader, current_cmd); 202: #ifdef HAVE_NCURSES 203: return menu_disk_ncurses(disk_car, verbose, dump_ind, saveheader, current_cmd); 204: #else 205: return 0; 206: #endif 207: } #12 0x000000000043bbd1 in testdisk_disk_selection_ncurses (current_cmd=0x7fff6dc6ccf0, saveheader=0, list_disk=0x236f9e0, dump_ind=0, verbose=1) at tdisksel.c:199 194: if(interface_check_disk_capacity(disk)==0 && 195: interface_check_disk_access(disk, current_cmd)==0 && 196: (hpa_dco==0 || interface_check_hidden_ncurses(disk, hpa_dco)==0) && 197: change_arch_type_ncurses(disk, verbose)==0) 198: { 199: if(menu_disk(disk, verbose, dump_ind, saveheader, current_cmd)) 200: return 0; 201: } 202: } 203: break; 204: case 's': #13 do_curses_testdisk (verbose=verbose@entry=1, dump_ind=dump_ind@entry=0, list_disk=list_disk@entry=0x236f9e0, saveheader=saveheader@entry=0, cmd_device=cmd_device@entry=0x0, current_cmd=current_cmd@entry=0x7fff6dc6ccf0) at tdisksel.c:266 261: int do_curses_testdisk(int verbose,int dump_ind, const list_disk_t *list_disk, const int saveheader, const char *cmd_device, char **current_cmd) 262: { 263: if(*current_cmd!=NULL) 264: return testdisk_disk_selection_cli(verbose, dump_ind, list_disk, saveheader, cmd_device, current_cmd); 265: #ifdef HAVE_NCURSES 266: return testdisk_disk_selection_ncurses(verbose, dump_ind, list_disk, saveheader, current_cmd); 267: #else 268: return 0; 269: #endif 270: } #14 0x0000000000403c56 in main (argc=, argv=0x7fff6dc6ce18) at testdisk.c:430 425: #endif 426: #endif 427: } 428: #endif 429: if(use_sudo==0) 430: use_sudo=do_curses_testdisk(verbose,dump_ind,list_disk,saveheader,cmd_device,&cmd_run); 431: #ifdef HAVE_NCURSES 432: end_ncurses(); 433: #endif 434: log_info("\n"); 435: while(done==0)