(db_root, imp_mods)
| 42 | |
| 43 | # https://github.com/idc/ps4libdoc/tree/5.05 |
| 44 | def GetFuncNameFromDB(db_root, imp_mods): |
| 45 | for mod_name in imp_mods: |
| 46 | |
| 47 | print('process module {}'.format(mod_name)) |
| 48 | db_basename = mod_name + '.sprx.json' |
| 49 | |
| 50 | db_basename = FixFileName(db_basename) |
| 51 | db_fname = os.path.join(db_root, db_basename) |
| 52 | if not os.path.exists(db_fname): |
| 53 | print('file not exist {}'.format(db_fname)) |
| 54 | exit(1) |
| 55 | |
| 56 | src = open(db_fname) |
| 57 | db_obj = json.load(src) |
| 58 | lib_dic = imp_mods[mod_name] |
| 59 | db_mod_list = db_obj['modules'] |
| 60 | for db_mod_dic in db_mod_list: |
| 61 | if db_mod_dic['name'] == mod_name: |
| 62 | db_lib_list = db_mod_dic['libraries'] |
| 63 | break |
| 64 | |
| 65 | found_lib = False |
| 66 | for lib_name in lib_dic: |
| 67 | print('process library {}'.format(lib_name)) |
| 68 | for db_lib_dic in db_lib_list: |
| 69 | if db_lib_dic['name'] == lib_name: |
| 70 | db_sym_list = db_lib_dic['symbols'] |
| 71 | found_lib = True |
| 72 | break |
| 73 | |
| 74 | if not found_lib: |
| 75 | print('can not find lib {} in {}'.format(lib_name, db_fname)) |
| 76 | |
| 77 | func_list = lib_dic[lib_name] |
| 78 | |
| 79 | |
| 80 | for func_pair in func_list: |
| 81 | for db_sym_dic in db_sym_list: |
| 82 | db_nid = db_sym_dic['id'] |
| 83 | if db_nid == func_pair[0]: |
| 84 | db_sym_name = db_sym_dic['name'] |
| 85 | if not db_sym_name: |
| 86 | func_name = '_import_{:016X}'.format(func_pair[0]) |
| 87 | else: |
| 88 | func_name = db_sym_name |
| 89 | |
| 90 | func_pair[1] = func_name |
| 91 | break |
| 92 | |
| 93 | def SortDic(imp_mods): |
| 94 |
no test coverage detected