def _get_user_lvar_settings(ea): dct = {} lvinf = ida_hexrays.lvar_uservec_t() if ida_hexrays.restore_user_lvar_settings(lvinf, ea): dct['lvvec'] = [] for lv in lvinf.lvvec: dct['lvvec'].append(HexRaysHooks._get_lvar_saved_info(lv)) dct['sizes'] = list(lvinf.sizes) dct['lmaps'] = [] it = ida_hexrays.lvar_mapping_begin(lvinf.lmaps) while it != ida_hexrays.lvar_mapping_end(lvinf.lmaps): key = ida_hexrays.lvar_mapping_first(it) key = HexRaysHooks._get_lvar_locator(key) val = ida_hexrays.lvar_mapping_second(it) val = HexRaysHooks._get_lvar_locator(val) dct['lmaps'].append((key, val)) it = ida_hexrays.lvar_mapping_next(it) dct['stkoff_delta'] = lvinf.stkoff_delta dct['ulv_flags'] = lvinf.ulv_flags return dct
def _get_user_lvar_settings(ea): dct = {} lvinf = ida_hexrays.lvar_uservec_t() if ida_hexrays.restore_user_lvar_settings(lvinf, ea): dct["lvvec"] = [] for lv in lvinf.lvvec: dct["lvvec"].append(_get_lvar_saved_info(lv)) if hasattr(lvinf, "sizes"): dct["sizes"] = list(lvinf.sizes) dct["lmaps"] = [] it = ida_hexrays.lvar_mapping_begin(lvinf.lmaps) while it != ida_hexrays.lvar_mapping_end(lvinf.lmaps): key = ida_hexrays.lvar_mapping_first(it) key = _get_lvar_locator(key) val = ida_hexrays.lvar_mapping_second(it) val = _get_lvar_locator(val) dct["lmaps"].append((key, val)) it = ida_hexrays.lvar_mapping_next(it) dct["stkoff_delta"] = lvinf.stkoff_delta dct["ulv_flags"] = lvinf.ulv_flags return dct